​​​session的生命周期分为创建session与销毁session

  1. 创建session:是指当用户第一次访问jsp页面时,因为jsp页面内置了session对象或Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session。
    只访问HTML、IMAGE等静态资源不会创建Session,可调用request.getSession(true)强制生成Session。
    第一次是指:浏览器访问服务器时,不带值为sessionId的cookie
  2. 销毁session(只有这两种情况):
    a.当session有效期到期(默认为30分钟,可手动设置)
    b.手动销毁session,用session.invalidate();

情景:先第一次访问了服务器的index.jsp页面,此时服务器创建一个session,并将它的id值存入一个cookie中响应给服务器。然后将浏览器关闭重开再次访问index.jsp

       第一次访问index.jsp,服务器会将这个session存入服务器内存。关闭浏览器再次访问,服务器会再给浏览器一个新的session,这是由于浏览器刚开,之前接受到的存有sessionId的cookie被清除了,再次访问浏览器时,又处于了第一次访问的状态。
       但是,之前的session(即第一个访问时创建的),并没有被销毁,而是保存在服务器内存中,直到有效期到了或手动销毁。

从上述表述可知,第一次访问服务器,是指访问服务器时没有携带带有sessionId的cookie或从服务器端理解,是没有对应访问用户的session

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐