我有一个Tomcat 6.0的默认安装,我有一个应用程序,它将信息存储在会话变量中。
似乎我的会话在短暂的不活动后失效。只要我每隔几秒钟导航到另一个页面,会话数据就会存在,但如果我停止点击大约半分钟,则浏览器存储的会话ID会发生变化。 (我已经使用Firebug确认了这一点,并从IE8中看到了与我的目标浏览器相同的行为。)
为什么会发生这种情况?我的应用程序的web.xml指定了30分钟的会话,我打电话给session.setMaxInactiveInterval(60)
以查看是否有任何改变,但似乎没有。
完整性检查:
我的网络应用web.xml开头如下:
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
version="2.5">
<session-config>
<session-timeout>30</session-timeout>
</session-config>
我的服务器的web.xml包含以下行:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
答案 0 :(得分:1)
根据this,您使用的方法将输入视为秒,而不是分钟,因此您可能会使事情变得更糟。
至于其余部分,我会考虑使用会话的代码,因为web.xml片段看起来没问题。
答案 1 :(得分:0)
某些最新版本的Tomcat 6具有名为“Session Fixation”的功能,可在您登录后更改会话ID。