1
我已經看過幾個很好的例子,如 How to Prevent Concurrent User Logins in PHP/MySQL Site? 他們描述了我試圖解決的問題。基本上只允許給定的用戶一次打開一個和一個會話,可以來自同一臺PC或2臺不同的PC。 因此,查詢數據庫的LoggedIN/Not LoggedIN標誌是最簡單可行的解決方案。 如何實現這是我的問題。
將會話驗證添加到每次請求頁面時運行的每個頁面都是不可行的,因爲它需要修改我們所有的JSP(長話短說,但我們沒有共同的頭文件) 有沒有什麼辦法可以重新配置Tomcat以對每個請求運行一些驗證檢查來查詢數據庫?也許使用閥門或其他方式?我沒有很多Tomcat的經驗,所以這就是我問的原因。 Thnx使用Tomcat來防止來自同一臺PC的併發用戶會話
感謝您的回覆這裏servlet-filter信息頁面(根據您的需要改變)。我是否還需要ServletRequestListener來跟蹤會話何時創建並將其添加到地圖?過濾器能夠訪問我的SessionListener創建的地圖嗎?我希望在沒有需要訪問數據庫的情況下獲得解決方案。所以我一直在考慮使用Hashmap來存儲所有當前活動會話ID,這是否可能?使用靜態哈希表的 – MayoMan 2012-03-21 09:15:52
可以跟蹤您的會話。但要非常小心。在會話閒置很長時間之後,您應該實施一些機制來清理哈希映射。否則,你會爲自己創建一個內存泄漏。 – Sean 2012-03-21 15:50:09