2013-05-16 40 views
0

當Tomcat會話過期時,我想確定先前登錄的用戶,並自動處理登錄,而不顯示登錄頁面。會話過期後自動重新登錄

這是我在想什麼:

  1. 在登錄,存儲的用戶名與應用程序中的變量的會話ID(從HttpsSession.getId())一起。
  2. 如果沒有有效會話時連接進來,請使用HttpServletRequest.getRequestedSessionId()獲取以前的會話ID。
  3. 如果有以前的會話ID,請根據存儲的列表進行檢查;如果找到,則爲相關用戶處理登錄。

我知道這不會復活過期會話的數據,這是好的,我只想知道用戶名。

這是一個合理的方法嗎?還是有更乾淨的方法呢?

+0

爲什麼不簡單讓會話過期時間更長? –

+0

我希望能夠進行自動重新登錄,無論會話有多長時間(可能有幾天),但我不想讓整個會話長時間處於活動狀態。 – Joe

回答

0

也許你可以使用Tomcat的org.apache.catalina.session.PersistentManager這可以將空閒會話交換到永久存儲(磁盤/數據庫)。然後,您可以讓您的會話過期更長時間,而不用擔心長時間運行的會話在內存中閒逛。請參閱http://tomcat.apache.org/tomcat-7.0-doc/config/manager.html

+0

看起來像會滿足我的需求 - 謝謝! – Joe