-1

1)

正如这里提到的,

HttpSession对象必须在应用程序(或 servlet 上下文)级别限定范围,其中 context 是,

ServletContext context = request.getServletContext();

2)

HttpSession对象是在每个浏览器会话中创建的,在 Tomcat 内存中。

-------------------------------------------------- ---------------

我无法将以上两点联系起来。

应用程序是不同 servlet 的集合。servlet 从每个浏览器的每个连接生成一个线程。每个 jsp/servlet 都指向浏览器指向的会话对象的一个​​版本。


每个浏览器创建的会话对象如何在 Web 应用程序级别限定范围?

4

1 回答 1

-1

会话(或会话 id)在服务器上生成并通过 cookie 或 URL 重写(当浏览器中禁止 cookie 时)传输到浏览器。

通常,在用户访问网站时会生成会话 ID。并且在登录后,服务器会出于安全问题更改会话 ID。

会话在以下情况下过期:

(1)调用 session.invalidate()

(2)超时配置:

<session-config>
<session-timeout>xxx</session-timeout>
<session-config>

(3)服务器重启(sessionid保存在本地缓存中)

于 2017-12-26T06:25:02.640 回答