2010-11-18 67 views
0

網站正在進行自動刷新。當用戶使用已登錄的用戶名登錄時,如何註銷以前的登錄名?如何在第一個登錄頁中提供重登錄頁瀏覽器窗口?避免在Web應用程序中進行多次登錄

Please provide some code snippets.... 


    Thanks in advance.... 

回答

2

This post正在處理類似的問題。

沒有你指定更多的細節,很難正確回答你的問題。首先,如果用戶在同一個瀏覽器中打開另一個選項卡或窗口,則它們仍將使用先前的登錄信息登錄。這是正常的行爲。

如果使用其他瀏覽器用戶登錄,那麼有一兩件事可以做:

  1. 註冊HttpSessionListener
  2. 時創建一個會話,使用void sessionCreated(HttpSessionEvent se),檢查用戶的憑證和會話ID是在你的數據庫
  3. 如果沒有,把它們放在一個數據庫表
  4. 如果是,則通過在數據庫中刪除以前的證書的失效前一交易日
  5. 當會話被破壞時,使用void sessionDestroyed(HttpSessionEvent se)刪除用戶在數據庫中的憑證

另一件事。如果你打算使用這種方法,那麼你必須檢查每個瀏覽器請求,如果你的用戶的憑據存儲在數據庫中。您可以使用Servlet filter。這當然是一個開銷。

還有一件事。如果會話創建/銷燬代碼中存在異常,則用戶的憑證可能無法在數據庫中正確處理。您可以使用數據庫觸發器來處理這個行,以刪除與會話超時時間一樣舊的行。

相關問題