几秒钟后会话更改:Java Servlets

时间:2012-01-19 01:57:30

标签: session tomcat6

我有一个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>

2 个答案:

答案 0 :(得分:1)

根据this,您使用的方法将输入视为秒,而不是分钟,因此您可能会使事情变得更糟。

至于其余部分,我会考虑使用会话的代码,因为web.xml片段看起来没问题。

答案 1 :(得分:0)

某些最新版本的Tomcat 6具有名为“Session Fixation”的功能,可在您登录后更改会话ID。