我在Tomcat 6中使用了HttpSession。我部署了我的Web應用程序的第一個Tomcat 6實例具有我期望的Tomcat會話行爲(我設置了一個maxInactiveInteval我的會議到30分鐘)。Tomcat 6:最大會話空閒時間不同實例
更新:我添加更多的代碼下面來證明我究竟是如何設置上的會話超時
這是我第一次安裝了會議:
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。什麼可能導致這種行爲?
你的問題很混亂。 'setMaxInactiveInterval()'不會做你認爲它做的事。它基本上與''完全相同,只是它允許在每個會話基礎上進行更改,因此您在那裏設置完全相同值的那一行是完全多餘的。你看到並正在努力解決的問題究竟是什麼? –
BalusC
@BalusC指出,我認爲是會話過期前的幾分鐘時間,但它顯示的是會話允許在請求之間空閒的時間,然後纔會失效。 –
stevebot
是的,這是正確的。我看到你已經編輯了你的問題來消除這種困惑。但我仍然不明白你的具體問題。什麼*確切*你的意思是「似乎沒有被尊重」?你何時/在哪裏設置這個值,以及會發生什麼? – BalusC