java - 如何在cookie中添加数据

标签 java servlets cookies

我想在 cookie 中添加两个值并检索它们。我这样做,但我只得到第一个值,而不是第二个值。

Cookie c = new Cookie("a", a);
c.setMaxAge(60);
response.addCookie(c);

Cookie b = new Cookie("d", d);
b.setMaxAge(5 * 60);
response.addCookie(b);

阅读时:

Cookie cookies[] = getRequest().getCookies();
Cookie myCookie = null;
if (cookies != null) {      
    for (int i = 0; i < cookies.length; i++) {
        log.info("test ;;;"+cookies[i].getName());
    }
}

这只返回一个数据。

最佳答案

您可能是从错误的 请求中读取它们的。新添加的 cookie 将仅在后续 请求中可用,它们不会立即反射(reflect)在当前 请求中。因此,例如,如果您向响应添加一个 cookie,然后尝试从当前 请求(与您添加 cookie 的同一响应相关联的请求)中读取它,那么您将不会完全获取添加的 cookie。当您将请求从一个资源转发到其他资源(即 Servlet 或 JSP)时,这也适用。

为此,还要在客户端调试/读取请求/响应 header 。在 FireFox 中,您可以使用 Firebug为此(打开 Firebug Pane ,转到 Net 选项卡,单击有问题的请求,您将看到请求/响应 header ,cookie 也在其中)。

关于java - 如何在cookie中添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2101151/

相关文章:

java - JSF/莫贾拉 2.0.2 : ui:repeat is totally broken when updating via AJAX

java - 俯仰和偏航 - 位置和隐形传输

java - 使用 VelocityViewServlet 时放置 Velocity 属性的最佳实践是什么

java - 将 org.json.JSONObject 转换为 javax.sql.rowset.serial.SerialBlob 的最佳方法是什么?

java - 如何在 Android 项目的 Java 模块上使用 Mockito 2 模拟最终类?

java - Servlets + JAX-WS

tomcat - 在已部署的 Tomcat Web 应用程序中触发操作

javascript - GDPR : youtube-nocookie embedded URL's, 需要访问者的许可吗?

api - 适用于移动和网络的安全API

javascript - 如何使用 gatsby-plugin-gdpr-cookies 设置 Gatsby Cookie 同意横幅