2021-10-15内置对象session与httpSession对象

内置对象session与httpSession对象
一、内置对象session
session对象指的是,客户端与服务器端的一次会话,从客户端连到服务器端的一个web应用程序开始,直到客户端与服务器端断开为止。

一个用户在同一个web服务器中只有一个session对象,当用户访问相同web服务的其他界面时,web服务器不会再重新分配session对象,直到用户关闭浏览器或者这个session对象达到了它的生存期限。当用户重新打开浏览器再访问该web服务时,web服务器为该用户再创建一个新的session对象。
注意,同一个用户再多个不同的web服务中所对应的session对象是不同的,一个web服务对应一个session对象。

而在某个web服务中session对象的生命周期依赖于以下几个因素:
①用户是否关闭浏览器
②session对象是否调用invalidate()方法
③session对象是否达到设置的最长“发呆”时间

二、HttpSession对象
服务器会为每一个用户创建一个独立的HttpSession。
HttpSession的原理:
当用户第一次访问Servlet时,服务器端会给用户创建一个独立的Session,并且生成一个SessionID,这个SessionID在响应浏览器的时候会被装进cookie中,从而被保存到浏览器中。当用户再一次访问Servlet时,请求中会携带着cookie中的SessionID去访问
服务器会根据这个SessionID去查看是否有对应的Session对象,有就拿出来使用;没有就创建一个Session(相当于用户第一次访问)。
2021-10-15内置对象session与httpSession对象
所以,只有访问JSP、Servlet等程序时HttpSession对象才会创建,只访问HTML、image等静态资源并不会创建。

三、
所以,综上所述,内置对象session与httpSession对象并不是一个东西。
可以说,session是对HttpSession的实现。
HttpSession需要一系列的参数来控制它的实现,例如cookie的名字、路径、域, 生存时间开关选项等,以及session持久化、失效时间等设置。

上一篇:2021-10-17


下一篇:Session—服务端会话技术