1. 程式人生 > >利用java的timer定時器來限制使用者的多次錯誤登陸

利用java的timer定時器來限制使用者的多次錯誤登陸

這裡主要用到的是timer這個類的幾個功能

具體操作在timertask內執行  用new timer來決定是迴圈執行 還是延遲執行 

比如在timertask的run()方法中

根據頁面傳過來的account查詢到資料庫中的資訊 (在資料庫中有一個欄位是判斷錯誤登入次數,最好可以用session來做)

達到特定次數如3次  將這個帳號的狀態改為限制5分鐘登陸 然後5分鐘後自動解封 跳出run 就好

例子:  這裡只大概寫出流程

String account = request.getParameter("a").toString();

final act=account;//轉換為final在timertask中呼叫

int se=request.getSession().getAttribute("faildin");//獲得這個帳號的登陸失敗次數 這裡要轉換為對應的型別自行處理

if(se>2)

{

Admin d=adminBiz.findByAAccount(act);  //根據拿到的act拿到使用者資訊

d.setAFlag(3);  //修改該使用者的狀態為暫時無法登陸

adminBiz.updAdmin(d);  

//接下來就是計時器發揮作用的時候

TimerTask tt=new TimerTask() {
public void run() {
Admin d1=adminBiz.findByAAccount(act);  //根據拿到的act拿到使用者資訊

if(adminBiz.findByAAccount(act).getAFlag()==3)
{

d1.setAFlag(0);   


adminBiz.updAdmin(d1);   //修改狀態為恢復登陸
}
}
};

Timer t=new Timer();
t.schedule(tt,180000);  //這裡的18W是指3分鐘  單位是毫秒  還有其他的方法請自行檢視api或者google

//在這裡寫給客戶端頁面返回的資訊

req="該使用者暫時無法登陸了!";

return;

}

例子寫的很粗糙  只是給個流程   請不要複製貼上 自行根據專案需要來做