java web开发中对于session生命周期的新认识

对于session的生命周期,很久以前以为是,当浏览器关闭后,会话会实效。当时也做过实验,确实没有发现哪里有问题,这是真滴尴尬。直到最近对会议的使用加深,才发现其中的一些奥妙。

这里先说session的生命周期,除了ie浏览器在关闭的时候会销毁session,其他浏览器都不会。然后,tomcat对session都会默认设置一个生命周期长度,这个我们是可以改变的。而生命周期是指,当session与服务器失去交互一定时间之后,才会失效。所以有两点。首先,在除了ie浏览器之外的其他,在关闭浏览器后,session不会立即失效,需要等到生命周期长度之后才会失效。原因很简单,关闭浏览器后,我们无法控制这个session,也就是说这个session一直处于和服务器无交互状态,需要等到生命周期到了才会失效。其次,需要理解session与服务器没有交互这个概念。这个不仅仅是指关闭服务器。而是指咱们的web没有对服务器的访问。我们将web放着不动,生命周期长度过去后,session一样会失效。

再说我们为什么我之前的实验没有验证出我对session的错误理解。在这里需要提一下,每次关闭浏览器后,我们会失去对当前session的控制。在重开浏览器后,会重新创建一个session。也就是,此session非彼session。这样就很容易理解了。实验时,我总是关闭浏览器后在尝试获得之前放入session的键值对,然后通过没有获取到预计中的value,判断session失效了,进而判断关闭浏览器后session失效的荒唐结论。事实是,当时获得到的session不是之前的session,这样肯定一定无疑获取不到对应的value。

由此我也明白了,事实或真相,总比你想的深的更多。也许我这篇blog中也存在理解上的错误,但是人总是在学习的,只能通过不断的学习,来发现并纠正自己。


  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值