gpt4 book ai didi

java - jsessionid传入url,如果浏览器保存cookie和jsessionid

转载 作者:行者123 更新时间:2023-11-28 22:49:12 26 4
gpt4 key购买 nike

我的 Web 应用程序在 URL 中传递 jsessionid,而它在其他浏览器和机器中使用基于 cookie 的 session 管理,这是期望的行为。

为了解决这个问题,我从语言环境存储中删除了存储的 cookie 和 jsessionid,然后它开始使用基于 cookie 的 session 管理而不是 URL 重写。

有人可以解释为什么会发生这种情况,存储 cookie 和 jsessionid 停止应用程序以使用 cookie 基础管理。我只需要在应用程序中进行基于 cookie 的 session 管理,我该怎么做。

环境:

Chrome 浏览器、Struts 2、Tomcat 7、Java 8

提前致谢。

最佳答案

jsessionid 是 Java 应用程序/web 服务器用来跟踪用户 session 的特殊 cookie(识别用户是旧用户,例如已经登录的用户)。对于对服务器的第一个请求,浏览器不会发送任何 cookie。所以,服务器不知道客户端是否支持cookie。为此服务器在 cookie 和 URL 中发送 jsessionid(URL 重写)。但是对于下一个请求,cookie 将可用(从上一个请求开始,浏览器将存储服务器发送的 cookie,并且对于相同的上下文,现在它知道已经有 cookie,所以发送它)。这就是为什么对于下一个请求,您在 URL 中看不到 jsessionid。要强制服务器仅使用基于 COOKIE 的跟踪,您需要在 web.xml

中添加以下片段
<session-config>
<!-- Only cookie based tracking -->
<tracking-mode>COOKIE</tracking-mode>
</session-config>

关于java - jsessionid传入url,如果浏览器保存cookie和jsessionid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46109387/

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