//用cookie 判断用户的错误登陆次数不能超过3次
//伪码如下:
    int i=1;
            int inputCount=0;
            inputCount+=i;
            System.out.println(inputCount);//怎么把这个值存到cookie里面,当检测到>=3时,提示用户已锁定
            
            Cookie[] cookies = request.getCookies();//保存到cookie 里面的inputCount等于3时
            if(cookies.equals(3)){
             super.writeJson(JsonResult.failure("用户已锁定,请30分钟后再试!").toJson());
            }请大家看看啊,我写了个大概,不是到给cookie里面怎么放值啊,

解决方案 »

  1.   

    写的什么玩意啊,乱七八糟啊,根本逻辑都不正确。应该是
      读取cookie里面的值
      if(cookie值不存在 || cookie值<3){
        if(用户名密码正确){
           登录系统
        }else{
           将cookie中保存的值+1后重新写入cookie
        }
      }else{
        提示已经超过3次密码错误
      }
      

  2.   

    这样不行的
    1、request.getCookies()取得所有Cookie
    2、循环,查看有没有一个Cookie的name是inputCount如果有,取值看是否超过三次,没有超过就值加一,如果没有名字是inputCount的Cookie则新建一个,名字为inputCount,值为1,通过response.addCookie发送到客户端Cookie cookie = null;
    Cookie[] cookies = request.getCookies();
    for(Cookie c : cookies){
    if(c.getName == "inputCount"){
    cookie = c;
    break;
    }
    }
    if(cookie != null){
    int count = Integer.valueOf(cookie.getValue());
    if(count < 3){
    count = count + 1;
    }else{
    System.out.println(count);
    }
    }else{
    Cookie cookie = new Cookie("inputCount", "1");
    }
    response.addCookie(cookie);
      

  3.   

    Cookie cookie = null;
    Cookie[] cookies = request.getCookies();
    for(Cookie c : cookies){
    if(c.getName == "inputCount"){
    cookie = c;
    break;
    }
    }
    if(cookie != null){
    int count = Integer.valueOf(cookie.getValue());
    if(count < 3){
    count = count + 1;
    cookie.setValue(String.valueOf(count));
    }else{
    System.out.println(count);
    }
    }else{
    Cookie cookie = new Cookie("inputCount", "1");
    }
    response.addCookie(cookie);刚才忘了再把值设回去了!不好意思
      

  4.   

    cookie现在还有人用,建议用session吧,cookie别人禁用了,就麻烦了
      

  5.   

    判断密码错误次数,用cookie或session都是很不好、不合理的,这个判断最简单的实现,也要在服务端做个静态变量存储。
      

  6.   

    longtian1213 这位老师,能加点注释吗?我才学习,麻烦了,好人帮到底吧!