Gwt 在servlet中将对象设置为cookie

Gwt 在servlet中将对象设置为cookie,gwt,servlets,cookies,Gwt,Servlets,Cookies,我使用cookie来避免rpc调用我第一次使用cookie进行用户身份验证(当他登录时)。为此,我无法将servlet中的用户对象设置为cookie。因为cookie构造函数只允许将字符串作为值 如何将对象设置为cookie? 除了cookie之外,还有什么方法可以在不进行RPC调用的情况下从HTTP会话获取对象吗?我假设您有一些系统可以将对象转换为JSON和JSON。因此,只需将对象转换为JSON字符串,保存到cookie中,然后在从cookie中提取对象时将其转换回对象。我建议使用pirit

我使用cookie来避免rpc调用我第一次使用cookie进行用户身份验证(当他登录时)。为此,我无法将servlet中的用户对象设置为cookie。因为cookie构造函数只允许将字符串作为值

如何将对象设置为cookie?
除了cookie之外,还有什么方法可以在不进行RPC调用的情况下从HTTP会话获取对象吗?

我假设您有一些系统可以将对象转换为JSON和JSON。因此,只需将对象转换为JSON字符串,保存到cookie中,然后在从cookie中提取对象时将其转换回对象。我建议使用piriti库来处理JSON(GWT自带了自己的JSON处理库,但它有一些限制)

但是有人说:“HTTP状态管理机制规范(处理cookie)规定,cookie的值中不能有双引号字符,除非它包装了整个内容


不要(尝试)将JSON放入Cookie。”

最好/最简单的方法是使用GWT的AutoBeans。我有一些示例代码(在Maven原型中),通过将
用户
对象序列化为HTML主机页中的JS对象文本,将其从服务器传递到客户端:@ThomasBroyer我需要更改bean结构吗??
if(authenticated){
                LoginPojo ch=new LoginPojo();
                ch.setImage("image");
                ch.setFullName( u.getFirst_name()+" "+u.getLast_name());
                ch.setLogin(u.getLogin);

                ObjectMapper objectMapper=new ObjectMapper();
                String jsonInString = objectMapper.writeValueAsString(ch);
                Cookie c=new Cookie("VISITOR",jsonInString);
//              c.setSecure(true);

                response.addCookie(c);
                request.getRequestDispatcher(rootURL).forward(request, response);
}