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

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 篇原创文章 · 获赞 0 · 访问量 601

猜你喜欢

转载自blog.csdn.net/qq_30591155/article/details/104309246