将账号和登录次数放在服务器的一个Map<用户名,登录次数>结构的静态变量里,这样应该可以吧!每次登录前判断,如果登录失败更新次数!还要定时清空Map

解决方案 »

  1.   

    我的想法:
    设计一张表:记录失败登陆的次数(error_count)、失败登陆的时间(error_time);
    规定失败登陆的时间间隔为5分钟,如果超过5分钟失败登陆重新类型失败登陆次数。
    场景:
    用户登陆 --> 
    if(error_count >=3) 返回不能在登陆;
    else {
       登陆失败,
       if(error_time < 5) error_count ++;
       else 设置 error_count =0 并更新记录;
    }
      

  2.   

    不要写到数据库,影响速度,登陆判断时这样写 if(){成功}else{失败;记录时间然后+1 第二次进到这里时用上次时间减当前再+1,第三次进这来用第一次时间减当前时间再+1,好比说这是一小时内登陆的次数}总共三次,登陆前js验证用ajax把后台的那个失败次数获取到,如果>=3就 button.style=灰/无     
      

  3.   

    推荐的做法,用js的cooking来做,不涉及到数据库,减轻了服务器的压力
      

  4.   

    你是指对账号的限制还是对ip的限制?简单点,以账号和时间为条件,记录登录次数。
    1、9、10楼说的已经差不多了。至于放置的位置,放到哪里自己决定吧。给出建议的朋友也不少了。
    app、session和cookie都可以,只是不推荐数据库。
      

  5.   

    可以设置oracle数据库的字段!count统计访问的记录次数,如果查询三次就count=3可以采用java判断这个字段呀!如果等于3那么让他锁定一天!
      

  6.   

    放到session中,application中区别用户不方便
      

  7.   

    不好意思 引错地方了 我是指用COOKIE的做法
      

  8.   

    这样的比较好
    我觉得或者直接放在一个全局的,每次有一个其他的用户名登陆,就随机的给他一个变量,然后放在context里面里面,让他递增,等到超过三次的时候,给他一个提示,告诉他不让他登陆的。可以让他保存在一个相应的文件了面
      

  9.   

    实现方式一:
    session+数据库字段实现1.sesion中记录用户登录失败的次数。
    2.数据库字段记录用户登录3次失败以后需要解锁的时间。例如:12:00登录3次失败,锁定1小时,那么下次可以正常登录的时间就是13:00。当然时间记录方面肯定是带年月日什么的。
    那么剩下的你实现锁定就很简单了。每次登录时只需要检查登录锁定时间是否大于当前系统时间,如果是就为锁定状态,不进行登录处理。实现方式二:
    另外还有一种实现方式,为某个session设置单独的失效时间,假设要锁定某用户1小时,那么你就为该用户设置一个session,有效时间1小时,那么在此session存在的时间内,该用户就是被锁定的。
      

  10.   

    好幼稚的想法,浏览器一关闭,你的session就失效。
      

  11.   

    使用Cookie,这是最好的办法!
      

  12.   

    写个静态HashMap,每隔24小时清空一次
    里面放用户ID,失败次数
    登陆时判断一下失败次数是不是大于3,如果大于3就不允许登陆Cookie的话 人家清空Cookie就可以在来3次,这样无限
    Session的话 人家关闭浏览器再开一个就可以再来3次,无限
    数据库的话 可以确保没问题,可是额外增加了数据量
      

  13.   

    登陆验证什么的尽量不要用数据库,如果突然断电会导致一些意想不到的事,比如,你服务器可以做一个Map保存连续登陆错误次数和账号,超过3次就在一定的时间之内禁止登陆,这样,可能还需要往里面再存一个时间,具体的数据结构可以自己设计
      

  14.   

    放在cookie里,那不是换台电脑又能继续登录?