这里主要用到的是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;
}
例子写的很粗糙 只是给个流程 请不要复制粘贴 自行根据项目需要来做