Session的生命周期
# 1 Session和Cookie的区别
Session的数据存储在服务器的内存上,而cookie保存在客户端的浏览器上。
Session保存在服务器的内存上,为了防止内存被占满,需适当的释放session所占的内存。这里就涉及到了Session的生命周期。
# 2 Session的生命周期
# 2.1 Session的创建
Session是在服务器接收到浏览器的第一次请求时,自动创建,也可以通过 request.getSession(true)
手动创建。
服务器将客户端发来的数据放入session对象中,并将session的id通过 set-cookie:jsessionid=xxx
的头发送到浏览器中。
客户端收到之后,将这个id存起来,再次访问服务器时会通过cookie头携带这个id访问服务器,服务器可以根据id找到对应的session对象,并获取数据。
# 2.2 Session的销毁
1)服务器关闭时。
2)session超时。超时时间可以在配置文件中配置,默认30分钟。
<!--在web.xml文件中设置HttpSession过期时间。 -->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<!--系统默认30分钟 -->
1
2
3
4
5
2
3
4
5
设置HttpSession的过期时间:单位为S
session.setMaxInactiveInterval(5);
out.print(session.getMaxInactiveInterval());
1
2
2
3)手动调用invalidate()方法销毁。
# 3 Session的特点
1)Session中的数据保存在服务器端。
2)Session中可以保存任意类型的数据。
3)Session默认的生命周期是30分钟,可以手动设置更长或更短的时间。
Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session"活跃(active)"了一次。
上次更新: 2022/11/24, 17:59:25