session失效的原因以及从session中取到的对象为null

在SSM项目中遇到Session数据偶尔丢失的问题,表现为存入session的信息有时无法取出,即使session未过期且ID一致。通过调整钝化配置解决,但仍存在疑问:钝化活化与SpringMVC如何交互?

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

session中取得的对象为null

最近在做SSM项目的时候,出现了一个bug,那就是我提前存入session的信息有时会取到有时会取不到的坑。
比如现在有这么一个需求,一个店主可以经营多个店铺,当进入某一个店铺下的时候,后端就会将这个店铺下的信息shop对象(主要字段ID)存入session中,以后在该店铺下进行的所有操作,比如增删改产品,都是依据提前存入到session中的shop对象,但是后端在从session中拿数据的时候,有时会取不到,有时也能取到;很气人有没有,于是就开始debug,调试的时候session并没有失效,取得sessionid还是同一个,但是但是我发现当提前存到session中的数据不由自主消失了,也就是attributes size为0
提前存入session的debug
当从session中取值时候的debug
于是做了很多尝试,从最原始的传递HttpServletRequest request.getSession.getAttribute() 到 HttpSession session.getAttribute() 再到springmvc注解都已失败告终;从debug图片上也能看到maxInactiveInterval过期时间设置为1800秒,不可能是过期的原因,过期后sessionId也就不可能相同;当在网上参考了一篇关于session失效的帖子
我有点感觉了,之前我设置过做过session的钝化和活化,这时我把在context.xml中的相关钝化的配置删去后,idea新建了一个tomcat,重启服务器就不会出现之前的问题了,但是还有不少疑问,钝化活化不是要设置相应的监听器吗,我的bean中并没有设置,SpringMVC对session的操作和context.xml的钝化配置有关系吗?百思不得解,望高人指点。另外给出session失效的原因,往哪几方面去考虑
参考该链接详情请点击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值