Session的生命周期

首先要介绍Session和Cookie的一点区别:
Session的数据存储在服务器的内存上,而cookie保存在客户端的浏览器上。

因为Session保存在服务器的内存上,所以,为了防止内存被占满,我们要适当的释放session所占的内存。此时,就涉及到了Session的生命周期了。

1、Session的创建:
Session是在服务器接收到浏览器的第一次请求时,自动创建,也可以通过 request.getSession(true) 手动创建

服务器将客户端发来的数据放入session对象中,并将session的id通过 set-cookie:jsessionid=xxx 的头发送到浏览器中。客户端收到之后,将这个id存起来,再次访问服务器时会通过cookie头携带这个id访问服务器,服务器可以根据id找到对应的session对象,并获取数据。

2.Session的销毁
1)服务器关闭时
2)session超时了。超时时间可以在配置文件中配置,默认30分钟。
3)手动调用invalidate()方法销毁

3.Session的小细节
1、当服务器正常关闭时,session会被写入到硬盘上,服务器启动后,文件被还原为session对象。
2、若cookie被禁用,需要用重写URL的方法来解决。原理是将session的id重写到URL中,服务器能够解析URL来获取id。
3、如果客户端关闭了,服务器正常运转,那下次打开客户端时,两次的session是两个不同的session,因为cookie中的id没了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值