我在Tomcat 6中使用HttpSession。我部署了我的Web应用程序的第一个Tomcat 6实例具有我期望的Tomcat会话行为(我在会话中将maxInactiveInteval设置为30分钟)。
更新:我在下面添加了更多代码,以准确演示我如何在会话中设置此超时
这是我首次设置会话的方式:
session = request.getSession(true);
session.setAttribute(USER_CREDENTIALS, new Credentials(username, password));
session.setMaxInactiveInterval(60*30);
然后我有一个拦截器来检查这个会话:
HttpSession session = request.getSession(true);
Credentials cred = (Credentials) session.getAttribute(AuthController.USER_CREDENTIALS);
似乎在我开发的Tomcat实例中工作正常,但在Tomcat 6的另一个实例中,在负载平衡环境中,maxInactiveInteval似乎不受尊重。
更新:我的意思是,如果用户处于非活动状态(没有新请求)大约十秒钟,则用户会话将过期。
代码中没有其他地方设置了maxInactiveInteval。可能导致这种行为的原因是什么?