1

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

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

4

2 回答 2

0

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

于 2012-09-06T06:35:56.073 回答
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 中。”

于 2016-09-15T07:57:03.300 回答