對於使用者登入不能同時登入的做法,我的想法是:
一、策略
a、後面的登入踢掉前面的登入
b、給前面的登入提示或者將前面的登入重定向到登出頁面
二、做法
a、在servletcontext中增加乙個hashmap物件,記錄登入的使用者名稱及其對應的session物件,其中key為使用者名稱,value為session物件,這樣可以利用hashmap的特性快速找到key,尤其是使用者量很大的情況下。
b、當乙個使用者輸入正確的使用者名稱和密碼後,到a中生成的hashmap中查詢該使用者名稱,如果沒有,則說明這個使用者名稱還沒有登入,將使用者名稱及對應的session新增到hashmap物件中;如果有,則到c。
c、取得hashmap中key中對應的session物件,如果session物件不為空,則使用invalidate()方法清理該session物件,同時增加key的value置為現在session物件。
需要注意的一點:當執行invalidate()方法時會觸發httpsessionlistener***的sessiondestroyed方法,在d步中,已經清除了key,所以c步中要新增key而不是修改key。
hashmap物件可以在應用初始啟動時生成。
mysql突然不能登陸 mysql不能登陸
前些天還正常執行的mysql,不知怎麼就不能登陸了。錯誤提示為 error 2003 hy000 can t connect to mysql server on localhost 10061 由於伺服器上空間比較小,刪去了一些檔案後,重試,還是不行,排除了因為空間問題導致的不能登陸。嘗試了下面的...
listen函式與海量使用者同時登陸
1.初步懷疑伺服器監聽能力與listen函式有關係,把socket 設定為listen 1 50個相同使用者名字同時登陸 使用指令碼 start dlgtcpclient.exe進行 第一次測試 成功登陸43 個。雙擊乙個客戶端的程式,增加到 44個證明那 7個使用者沒有成功登陸的原因是因當時登陸的...
sa不能登陸
這是針對sql server 2005資料庫的問題,登入的時候出現 已成功與伺服器建立連線,但是在登入過程中發生錯誤。provider 共享記憶體提供程式,error 0 管道的另一端上無任何程序。鬱悶了好久,終於解決了 解決方法如下 首先選中伺服器 右鍵 屬性 安全性 伺服器身份驗證修改為 sql...