利用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;

}






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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值