【问题标题】:Add JSON format cookie to the response - Servlet将 JSON 格式的 cookie 添加到响应中 - Servlet
【发布时间】:2018-02-08 20:56:12
【问题描述】:

我正在尝试使用 JSON 格式的 java servlet 将 cookie 添加到响应中。我看到 cookie 是用额外的双引号和斜杠创建的。我试过使用 GSON 库来解析 json 字符串。

HashMap<String, String> jsonMap = new HashMap<>();
        jsonMap.put("name", "someName");
    Cookie myJsonCookie = new Cookie("cookieName", new Gson().toJson(jsonMap));
        myJsonCookie.setHttpOnly(true);
        myJsonCookie.setSecure(true);
        myJsonCookie.setPath("/");
        myJsonCookie.setMaxAge(60*60);
        response.addCookie(myJsonCookie);

Following code is adding cookie as

如何转义引号和斜杠?

【问题讨论】:

  • 为了将来参考,标准方法是对 cookie 进行 base64 编码,但没有填充 - 这样,如果您切换应用服务器,您就不必在该服务器中找到魔法标志。详情请见this question

标签: java json servlets cookies gson


【解决方案1】:

我正在使用 Tomcat 7 应用服务器。添加属性解决了这个问题。 org.apache.tomcat.util.http.ServerCookie.ALLOW_HTTP_SEPARATORS_IN_V0=true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-04
    • 2015-09-11
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 2021-10-11
    • 2017-03-09
    • 1970-01-01
    相关资源
    最近更新 更多