我已經設置了Tomcat在閒置15分鐘後處理會話。事情是這樣的如何讓用戶知道他/她的會話已過期?
<session-config>
<session-timeout>15</session-timeout>
</session-config>
每當用戶訪問受限制的網頁(需要先登錄的用戶)我檢查會話,看是否在登錄過程已經完成。如果有,則授予訪問權限(如果沒有),那麼用戶將被重定向到登錄頁面,並在其中提示用戶輸入有效的ID和密碼。如果會話超時,則用戶需要重新登錄。這很好,但我想讓用戶知道他/她必須再次登錄,因爲會話已超時。
我該如何去做這件事?我發現HttpSessionListener接口,並認爲它可能會有所幫助,但sessionDestroyed方法在會話失效之前被調用,因此設置參數沒有什麼好處,如預期的那樣。
當會話過期時,實際上只設置**參數/ cookie是很困難的。你會如何確定*何時做到這一點?在會話過期期間,沒有辦法使用「HttpServletRequest」。隨後的新請求/會話不知道前一個請求/會話。 – BalusC 2010-01-05 11:53:49
用戶登錄時在用戶的瀏覽器中添加一個cookie,並在HttpSession中添加一個標記。如果cookie存在且會話或令牌不存在,則用戶最近登錄並且他們的會話超時。 – 2010-01-05 16:24:08
是的,正如我回答的那樣。但是,您直接說*當您將用戶重定向到登錄表單*。你會怎麼做? – BalusC 2010-01-05 21:20:33