gpt4 book ai didi

Java Servlet/JSP Cookie 断开连接

转载 作者:行者123 更新时间:2023-12-02 08:37:29 26 4
gpt4 key购买 nike

我在身份验证 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com