关于JAVA的WEB开发,想在页面中实现在一段时间内限制同一个IP登陆失败次数过多
想在页面中实现在一段时间内限制同一个IP登陆失败次数过多的再次登陆。最好是在servlet中实现?怎么实现请帮帮。如果不是不servlet实现也要给发表来大家参考一下。...
想在页面中实现在一段时间内限制同一个IP登陆失败次数过多的再次登陆。最好是在servlet中实现?怎么实现请帮帮。如果不是不servlet实现也要给发表来大家参考一下。
展开
1个回答
展开全部
给出在doXX(get或者post)方法里的一点,其他自己完善。
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException {
int resc = 6 ;//定义次数,比如六次
HttpSession sess = request.getSession(true);//获取一个session
//这里使用伪码,假设你已经有了验证是否登录失败的方法,假设这个方法名字为 validate(),返回类型为boolean,为true则为登录成功
if(validate()){
//继续你的程序流程。。
}else{//登录失败了。。。
String add = request.getRemoteAddr();//获取当前用户的IP
Integer times = (Integer) sess.getAttribute(add);
if(times == null ){//当前第一次登陆
sess.setAttribute(add, new Integer(1));//设置为登录了一次
}else{
times = times + 1;//这样做不太好,但是也有效。严谨点,你可以取出times的intValue,然后再操作
if(times >= resc){//超过次数限制。。。
//执行你需要的程序。。。
}else{//没有超过次数,继续。。。
sess.setAttribute(add,times);
}
}
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException {
int resc = 6 ;//定义次数,比如六次
HttpSession sess = request.getSession(true);//获取一个session
//这里使用伪码,假设你已经有了验证是否登录失败的方法,假设这个方法名字为 validate(),返回类型为boolean,为true则为登录成功
if(validate()){
//继续你的程序流程。。
}else{//登录失败了。。。
String add = request.getRemoteAddr();//获取当前用户的IP
Integer times = (Integer) sess.getAttribute(add);
if(times == null ){//当前第一次登陆
sess.setAttribute(add, new Integer(1));//设置为登录了一次
}else{
times = times + 1;//这样做不太好,但是也有效。严谨点,你可以取出times的intValue,然后再操作
if(times >= resc){//超过次数限制。。。
//执行你需要的程序。。。
}else{//没有超过次数,继续。。。
sess.setAttribute(add,times);
}
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询