在Servlet中将Object设置为cookie

时间:2012-09-06 06:29:59

标签: gwt servlets cookies

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

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

2 个答案:

答案 0 :(得分:0)

我假设你有一些系统用于在JSON之间转换对象。因此,只需将对象转换为JSON字符串,将其保存到cookie中,并在从cookie中提取对象时将其转换回对象。我推荐使用piriti库来处理JSON(GWT内置了自己的JSON处理库,但它有一些限制)。

答案 1 :(得分:0)

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);
}

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

不要(尝试)将JSON放入cookie中。“