Httpsession适用于每个用户还是每个浏览器?
我正在使用tomcat作为我的Web服务器。我在IE中点击了一些url,并为该请求在Httpsession适用于每个用户还是每个浏览器?,http,web-applications,tomcat,servlets,Http,Web Applications,Tomcat,Servlets,我正在使用tomcat作为我的Web服务器。我在IE中点击了一些url,并为该请求在HttpSession中放置了一些对象 现在我的问题是: 如果我关闭浏览器并在新浏览器中点击url,我先前在会话中放置的对象是否可用 如果我不关闭浏览器并在新的选项卡/窗口中点击url,我先前在会话中放置的对象是否可用 他说: 提供一种方法,用于跨多个页面请求或访问网站来识别用户,并存储有关该用户的信息 根据我在这里的理解,“用户”一词是指“浏览器”。一旦我们打开一个新浏览器,Tomcat/任何Web服务器都会将
HttpSession
中放置了一些对象
现在我的问题是:
如果是这样的话,我们在会话中设置的任何对象都应该对所有用户请求可见,即使是从不同的机器触发,因为每个Web服务器都有servlet上下文。但在应用程序范围不在会话范围内的情况下也是如此。我不明白它想说什么。该会话实际上绑定到一个浏览器,在该浏览器中打开的所有帧/选项卡共享同一个会话。如果退出浏览器,则会丢失会话 会话跟踪是使用cookie实现的,但如果浏览器不接受cookie,则可以返回URL重写。然而,这需要开发人员非常谨慎,并且始终使用适当的方法或标记来编码应用程序的每个链接和操作的URL
最后一部分的意思是,如果在同一个servlet容器中部署两个不同的webapp,并且同一个用户使用同一个浏览器使用这两个应用程序,那么他将拥有两个不同的会话:每个webapp一个会话。第一个webapp的会话与第二个webapp的会话完全隔离。我认为这取决于服务器实现(会话cookie或URL中的参数) 默认情况下,Tomcat使用会话cookie,如果用户代理拒绝cookie,则使用URL参数 因此,行为当然会改变
- 用饼干
- 没有
- 对
- 带URL
- 没有;如果复制了带&JSESSIONID的完整URL,则为“是”
- 没有;如果复制了带&JSESSIONID的完整URL,则为“是”