Java Servlet/JSP Cookie 断开连接

标签 java jsp cookies

我在身份验证 servlet 和实际 jsp 之间的 cookie 可见性方面遇到了一个奇怪的问题。我们使用 servlet 来验证用户是否是有效用户,如果是,我们继续将 cookie 添加到 HttpServletResponse 及其引用 URL(这样集成就可以重定向到他们自己的登录页面)登出)。注销操作通过相同的 servlet,检索 cookie,并将用户引导回存储的 cookie url。这一切都有效。

但是,在我的网站中,如果我打印通过 pageContext.getRequest().getCookies() [或通过 firebug 的控制台] 拉出的 cookie,我根本找不到我存储的 cookie。确实没有任何痕迹。然而,当您单击注销链接并被引导回身份验证 servlet 时,会找到 cookie,并进行相应的重定向。

问题是,我需要以与注销相同的方式处理超时操作,但超时检查是在 servlet 外部的 jsp 标记中。由于超时无法找到 cookie,因此它只是使用标准的超时页面,这是集成客户不希望看到的。

知道这里发生了什么吗?

[答案] 结果发现是路径问题。我知道我没有粘贴任何代码,但我在创建 cookie 时没有设置路径,因此 cookie 仅在 servlet 目录中可见。一旦我设置了“/”路径,cookie 在整个网站中都是可见的。

最佳答案

当您说“在我的网站内”时,这是否意味着您的网站部署在不同的(子)域上?默认情况下,Cookie 仅对设置它们的主机可见,这意味着从“www.example.com”设置的 Cookie 对“other.example.com”不可见。您可以通过显式指定两者共用的 cookie 域(例如“example.com”)来解决这个问题。

关于Java Servlet/JSP Cookie 断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1139447/

相关文章:

java - ServletContentListener 中的 ArrayList

image - Spring MVC 图像 Controller ,用于在 JSP 中显示图像字节

java - ModelAndView对象未返回到jsp

javascript - 使用 jQuery Cookie 在数组中存储和返回值

cookies - js-cookie samesite 和 httpOnly

javascript - 为整个域而不是特定页面设置 cookie(使用 JS)

java - 多图 Guava 值

java - Spring 批处理 : scope ("step") failed

尝试在 gridview 中显示图像时出现 java.lang.outofmemoryerror 异常

java - 如何删除非数字?