【JSP】session

session:即会话,Web应用中,会话指的是在一段时间内,浏览器与服务器之间进行的请求和响应的交互过程。在一个会话中,用户可以访问该Web项目中的包括网页在内的多种资源

第一次向某Web项目发送请求

当用户通过浏览器向某Web应用服务器第一次发送请求时,服务器会为该用户创建一个唯一标识的session,该session会一直持续到本次访问结束(关闭浏览器),JSP使用使用session对象表示会话,将信息保存在session对象中,方便用户在这个会话中随时获取
【JSP】session
我们可以看到,当第一次向该Web项目发送请求时,请求头中没有session,而响应头中有session,并且将其设置为了cookie

第二次向某Web项目发送请求

只要是该项目名,即使没有该文件,请求头中也会出现与第一次访问时响应头中相同ID的session,下图为第二次向该项目发送请求:
【JSP】session

正常关闭Web服务器时

如果服务器正常关闭,则将对象序列化到tomcat根目录下的work文件夹中与刚才访问过的那个项目名同名的文件夹中的SESSION.ser文件内,如下:
【JSP】session
服务器重新启动,则将该文件中session对象重新反序列化,此时上图的SESSION.ser文件将会被删除,再次访问该项目,此时的请求头中自动添加了与第一次访问时响应头中相同ID的session,如下图:
【JSP】session

session的失效

关闭浏览器后,该session失效;
如果设置了session的时间:

  • 关闭浏览器仅仅是中断了和Web应用服务器的联系,但是session对象依然存在服务器端,在该时间内再次访问该项目,请求头中依然存在与上次请求时相同ID的session;
  • 如果时间超时,Web服务器将会把该session删除,超时后再次访问该项目,会重新生成一个与上次ID不同的session;
  • session的超时计算是从上次向该项目发送请求到本次请求之间的时间