2 u014803563 u014803563 于 2016.01.15 17:40 提问

项目运行一段时间后session数据失效问题 5C

最近struts2+spring做开发,项目启动后登陆操作一切正常,一天后再登陆后操作session里的数据老是失效不存在,但是页面又显示正常, 纠结了很久找不到原因,还请大神们帮忙看下.
获取session数据是用struts2的方法,代码如下,服务器是用的jboss7
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
Hashtable user=(Hashtable) session.getValue("user");

4个回答

u012357455
u012357455   2016.01.15 18:00

session本来就会自动失效的啊 tomcat的话是在 web.xml 中添加

 <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
30就代表30分钟 你说的jboss7的话也应该是差不多的
fk002008
fk002008   2016.01.15 18:44

Server端session是有时效的。
一般就是30分钟。
你一天都没有登陆了,服务器的session数据都不在了。

至于页面可能是页面端的cookie吧

u011585735
u011585735   2016.01.16 13:58

服务器是根据sessionId获取session的,在客户端无操作的情况的下,session超时后就会失效。

当浏览器关闭后,再打开登录sessionId会改变,这样访问服务器时未超时的session也访问不到,这时服务会创建一个新的session。

可以将sessionId保存在客户端Cookie中。这个浏览器重器再访问服务是还能访问的原来的session,但是session超时后依然会失效。

qq_16414307
qq_16414307   2016.01.19 14:43

应该是你服务器内存不够,导致session被清理.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!