在我的web應用程序中,當用戶登錄時,我將他的Id添加到servlet中有效ID的向量中,當他註銷時,我從向量中刪除了他的Id,以便可以看到有多少當前用戶處於活動狀態,如果用戶忘記註銷,我的servelt生成的html有:如何檢測瀏覽器關閉?
<meta http-equiv="Refresh" content="30; url=My_Servlet?User_Action=logout&User_Id=1111">
在標籤中自動註銷他。
但我注意到很多用戶都永遠在,永遠不會登出。我發現了爲什麼,通過關閉瀏覽器,他們從不手動或自動註銷,所以他們的用戶ID將永遠不會從有效的用戶ID矢量中移除。
所以,我的問題是:如何檢測用戶關閉其瀏覽器,所以我的servlet可以從向量中刪除其ID?
我看到一些光在隧道的盡頭,但仍有一個問題,我的程序有這樣的事情:
活躍用戶列表:
User_1 : Machine_1 [ IP_1 address ]
User_2 : Machine_2 [ IP_2 address ]
User_3 : Machine_3 [ IP_3 address ]
...
我如何從會話監聽器知道哪個用戶的會話已結束,因此將他從我的列表中刪除?
我希望當會話結束時,HttpServlet的destroy()
方法會被調用,並且我可以刪除那裏的用戶標識,但是當用戶關閉瀏覽器時它不會被調用,爲什麼?當會話關閉時,HttpServlet中還有其他方法嗎?
順便說一句 - 我不知道我是怎麼鏈接的代碼將在羣集/多虛擬機環境中工作。我會懷疑不太好。 – 2008-11-18 18:56:18
此鏈接http://www.stardeveloper.com/articles/display.html?article=2001112001&page=1已損壞。更新你的答案。 – OO7 2014-12-02 08:07:09