利用java的timer定时器来限制用户的多次错误登陆

来源:互联网 发布:3306端口被占用 编辑:程序博客网 时间:2024/05/21 12:41

这里主要用到的是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;

}






例子写的很粗糙  只是给个流程   请不要复制粘贴 自行根据项目需要来做  

原创粉丝点击