2012-01-19 42 views
0

我有一個Tomcat 6.0的默認安裝,我有一個應用程序將信息存儲在會話變量中。幾秒鐘後會話發生變化:Java Servlets

似乎我的會話在短時間內不活動後失效。只要我每幾秒鐘瀏覽另一個頁面,會話數據就在那裏,但如果我停止點擊大約半分鐘,瀏覽器存儲更改的會話ID。 (我已經使用Firebug證實了這一點,並且看到了與我的目標瀏覽器相同的IE8行爲。)

爲什麼會發生這種情況?我的應用程序的web.xml指定了30分鐘的會話,並且我撥打了session.setMaxInactiveInterval(60)以查看是否改變了任何內容,但似乎沒有。

健全檢查:

我的web應用程序的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> 

回答

1

this,該方法你使用以秒爲單位的輸入,而不是分鐘,所以你會讓事情變得更糟。

至於其他方面,我會考慮使用會話的代碼,因爲web.xml片段看起來不錯。

+0

你打錢。我分類的一個servlet就是這樣做的。 – bdares

0

某些最新版本的Tomcat 6有一個名爲「Session Fixation」的功能,它可以在您登錄後更改會話ID。