我开发了一个简单的Web应用程序,包含2个servlet A和B.Tomcat中的会话管理
我对Tomcat的Web应用程序的会话管理有几个疑问。
注 - 我在访问网络应用程序时在我的网络浏览器(Chrome)中禁用了Cookie。
1.)当网络应用程序第一次命中时,Servlet A被调用。 Servlet A从请求中访问会话并执行会话哈希码的简单sysout。然后它做sendRedirect到servlet B.
[根据我的理解,由于这是第一个请求,Tomcat会发送一个包含新会话ID的cookie回浏览器。但是,由于我们没有使用HttpResponse.encodeRedirectURL()“重新编码”重定向URL,重定向URL将不包含附加到其的会话ID。如果我在这里错误,请纠正我。]
2.)由于Cookie在我的浏览器中被禁用,它将忽略cookie中发回的会话ID,并向重定向URL发出新请求没有会话ID追加到它)。
3.)新请求导致servlet B被调用,whoch也访问请求会话并执行会话散列码的sysout。
让我感到困惑的是Servlet A和B都输出相同的会话哈希码,这意味着它们会从这两个请求中获得相同的会话。
即使没有发送会话ID,浏览器的第二个请求如何映射到与之前相同的会话?
谢谢!