M S*_*ach 3 tomcat servlets web-applications http
我使用 tomcat 作为我的网络服务器。我在 IE 中点击了一些 url 并HttpSession
为该请求放入了一些对象。
现在我的问题:
如果我关闭浏览器并在新浏览器中点击 url,我之前放入会话的对象是否将可用?
如果我不关闭浏览器并在新选项卡/窗口中点击 url,我之前放入会话的对象是否可用?
在HttpSession
javadoc中说的情况如下:
提供一种在多个页面请求或对网站的访问中识别用户并存储有关该用户的信息的方法。
根据我的理解,这里的术语“用户”是指“浏览器”。一旦我们打开一个新浏览器,Tomcat/任何网络服务器就会将其视为新用户。这样对吗?Tomcat 是使用 cookie 还是重写 URL 来实现的?
javadoc 还说:
会话信息仅适用于当前的 Web 应用程序 (ServletContext)。
如果是这种情况,我们在会话中设置的任何对象都应该对所有用户请求可见,即使是从不同的机器触发,因为每个 Web 服务器都有 servlet 上下文。但在应用程序范围不在会话范围内的情况下,这是正确的。我没有明白它在这里想说什么。
该会话确实与单个浏览器相关联,并且在该浏览器中打开的所有框架/选项卡共享同一个会话。如果您退出浏览器,您将丢失会话。
会话跟踪是使用 cookie 实现的,但如果浏览器不接受 cookie,则可以回退到 URL 重写。但是,这需要开发人员谨慎行事,并始终使用适当的方法或标签,以便对应用程序的每个链接和操作的 URL 进行编码。
最后一部分的意思是,如果你在同一个 servlet 容器中部署两个不同的 webapp,并且同一个用户,使用同一个浏览器,同时使用这两个应用程序,他将有两个不同的会话:每个 webapp 一个。第一个 webapp 的会话与第二个 webapp 的会话完全隔离。
归档时间: |
|
查看次数: |
2532 次 |
最近记录: |