无论活动如何,会话都会在30分钟内注销

时间:2013-03-21 15:35:07

标签: java web.xml session-timeout

我已设置< session-timeout>在web.xml中30分钟。如果我没有错,那么只有当会话处于非活动状态时,才应该在30分钟内注销会话。但在我的应用程序中,无论活动如何,用户都会在30分钟内注销。有人可以帮我这个吗?我不是问题所在。

2 个答案:

答案 0 :(得分:0)

检查您是否收到了每个请求的新会话。一种简单的方法是在会话中存储一个Integer,并在每次请求时递增它。然后将整数的值(作为整数或字符串)添加到响应并在页面上显示(如果需要,显示可以将其作为隐藏字段添加到页面中。)

答案 1 :(得分:0)

可能有很多原因导致意外的会话超时,如果没有进一步的信息,我只能给出一些指示和建议。

  1. 您使用群集吗?如果您这样做,请检查您的负载均衡器的算法和设置。 30分钟后,用户是否请求转发到群集中的其他服务器?您是否在群集中配置了会话复制?另一种确保负载均衡器不是罪魁祸首的简单方法是关闭群集中除一个以外的所有其他服务器。因此,保证将请求发送到同一服务器。然后,您可以检查30分钟超时,无论用户活动是否仍然发生。服务器访问日志还可以帮助您查看用户是否在服务器之间退回。
  2. 如果您安装了任何浏览器插件ieHTTPHeaders,请检查每个请求发送的会话cookie,看看是否有任何更改。
  3. 另一个问题是,如果您将web.xml中的30分钟超时更改为15分钟,那么无论用户活动如何,用户是否每15分钟超时一次?