Gwt 在servlet中将对象设置为cookie
我使用cookie来避免rpc调用我第一次使用cookie进行用户身份验证(当他登录时)。为此,我无法将servlet中的用户对象设置为cookie。因为cookie构造函数只允许将字符串作为值 如何将对象设置为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调用的情况下从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);
}