利用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;
}
例子寫的很粗糙 只是給個流程 請不要複製貼上 自行根據專案需要來做