内置对象session与HttpSession对象并不是同一个东西
-
内置对象session 指的是客户端与服务端的一次会话,从客户端连到服务器端的一个Web应用程序开始,直到客户端与服务器端断开为止,它在第一个JSP页面被装载时就会自动创建,然后完成会话管理,当一个客户访问一个服务器时,可能会在这个服务器里切换几个页面,而服务器就是通过内置对象session知道这是同一个客户。 -
HttpSession对象 是session技术里的一个对象,使用HttpSession对象可以实现会话跟踪技术。HttpSession对象在用户第1次访问服务器时由容器创建(只有访问JSP、Servlet等程序时才会创建,只访问HTML、image等静态资时并不创建),当用户调用其失效方法(invalidate()方法)或超过其最大不活动时就会失效。在会话期间,用户与服务器之间的多次请求都属于同一个会话。服务器在创建session对象时,会为其分配唯一的会话标识sessionId,以JSESSIONID的属性名保存在客户端Cookie中。在用户后续请求中,服务器通过读取Cookie中的JSESSIONID属性值来识别不同的用户,从而实现对每个用户的会话跟踪。当需要为用户创建一个session时,servlet容器就创建了一个HttpSession对象,其中存储了和对应session相关的信息,所以,在一个servlet中有多少个不同用户连接,就会有多少个HttpSession对象。
|