问题描述
- 项目运行一段时间后session数据失效问题
-
最近struts2+spring做开发,项目启动后登陆操作一切正常,一天后再登陆后操作session里的数据老是失效不存在,但是页面又显示正常, 纠结了很久找不到原因,还请大神们帮忙看下.
获取session数据是用struts2的方法,代码如下,服务器是用的jboss7
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
Hashtable user=(Hashtable) session.getValue("user");
解决方案
session本来就会自动失效的啊 tomcat的话是在 web.xml 中添加
<session-config>
<session-timeout>30</session-timeout>
</session-config>
30就代表30分钟 你说的jboss7的话也应该是差不多的
解决方案二:
Server端session是有时效的。
一般就是30分钟。
你一天都没有登陆了,服务器的session数据都不在了。
至于页面可能是页面端的cookie吧
解决方案三:
服务器是根据sessionId获取session的,在客户端无操作的情况的下,session超时后就会失效。
当浏览器关闭后,再打开登录sessionId会改变,这样访问服务器时未超时的session也访问不到,这时服务会创建一个新的session。
可以将sessionId保存在客户端Cookie中。这个浏览器重器再访问服务是还能访问的原来的session,但是session超时后依然会失效。
解决方案四:
应该是你服务器内存不够,导致session被清理.
时间: 2025-01-31 01:59:31