Session Tomcat中的会话管理
我开发了一个简单的web应用程序,包含两个servlet a和B 我对Tomcat的web应用程序的会话管理有一些疑问 注意-在访问web应用程序时,我已禁用web浏览器(Chrome)中的Cookie 1.)当web应用程序第一次被点击时,Servlet A被调用。Servlet A从请求访问会话,并对会话哈希代码执行简单的sysout操作。然后它对servlet B执行一个发送重定向 [据我了解,由于这是第一个请求,Tomcat将向浏览器发送一个包含新会话ID的cookie。但是,由于我们没有使用HttpResponse.encodeRedirectURL()对重定向URL进行“编码”,因此重定向URL将不包含附加到其上的会话ID。如果我在此处出错,请更正。] 2.)由于我的浏览器中禁用了cookie,它将忽略cookie中发回的会话ID,并向重定向URL发出新请求(重定向URL也没有附加会话ID) 3.)新请求导致调用servlet B,servlet B还访问请求会话,并对会话哈希代码执行sysout操作 让我困惑的是servlet A和B都输出相同的会话哈希代码,这意味着它们从两个请求中获得相同的会话 即使没有发送会话ID,浏览器的第二个请求如何映射到与以前相同的会话Session Tomcat中的会话管理,session,tomcat,jakarta-ee,Session,Tomcat,Jakarta Ee,我开发了一个简单的web应用程序,包含两个servlet a和B 我对Tomcat的web应用程序的会话管理有一些疑问 注意-在访问web应用程序时,我已禁用web浏览器(Chrome)中的Cookie 1.)当web应用程序第一次被点击时,Servlet A被调用。Servlet A从请求访问会话,并对会话哈希代码执行简单的sysout操作。然后它对servlet B执行一个发送重定向 [据我了解,由于这是第一个请求,Tomcat将向浏览器发送一个包含新会话ID的cookie。但是,由于我们没
谢谢 在请求之间传递会话只有两种方法:Cookie和URL重写。如果在URL中看不到会话ID,则它必须是cookies
您确定cookie已禁用吗?从HTTP头跟踪应该很容易看到。您确定已禁用“内存中”cookie吗?浏览器通常允许您禁用保存到磁盘的持久cookie,但仍然允许仅在浏览器会话期间驻留的临时内存cookie 我建议您分析HTTP流。这样,您就可以看到浏览器发送和接收的cookies。这很奇怪 当我昨天测试应用程序时,它表现出与我所描述的类似的行为。然而,当我现在测试应用程序时,它的行为就像我期望的那样完美 原因可能是我在禁用cookie后没有重新启动浏览器会话 如果我再次经历同样的行为,我会告诉你们的 谢谢你们的时间,伙计们