请教一下,如何用java web实现禁止用户多处登陆??即一个用户同时只能在一点登录

解决方案 »

  1.   

    1,登陆的时候修改数据库里的一个值
    2,为每个用户名建个application~(不确定这个行不行,反正我觉得肯定不好)
      

  2.   

    就是在数据库中用户表中多加一个用户在线状态的字段,每次登录的时候查询条件加上这个条件判断用户是否已经登录,如果已经登录就不让登录了;
    还有就是这样的话,如果出现意外关闭浏览器的时候,这就需要考虑到把登录状态改成离线的问题,这需要设置一下配置文件中session失效时间,使用监听器监听session失效时调用修改状态的方法就OK了!
      

  3.   

    楼上说的就是我所提这个问题的初衷,就是在想,记录在表中,判断是很好解决,但是当用户由于异常,或其他原因直接关闭浏览器,将如何追踪呢,就算你是配置了session的实效时间,那么当用户异常关闭后,启不是无法登录?? 请赐教
      

  4.   

    登陆时判断session是否有此用户,有的话就是有人登录此用户帐号,那就调用session.removeAttribute("用户帐号"),然后再把用户再次放进session就好了。(关键是登录要把用户放到session。这样才能判断)
      

  5.   

    先判断一下是否登录了1.session判断
    2.数据库多加个标志位可能还有其它办法
      

  6.   

    最简单是数据库加个字段来判断
    csdn
      

  7.   

    个人觉得,建立一个Session监听器,判断Session中已存的用户是否与登录的冲突,而后在给出相关的提示。
      

  8.   

    单点登录有框架实现的。Web SSO 可以做到。http://blog.csdn.net/javachannel/archive/2006/05/24/752437.aspx
      

  9.   

    我觉得应该像QQ一样,后登陆的人可以登录,但前面登录的就失效了。这样比较合理些。
    像上面的人所说,后登陆的人判断,这个账号是否在线,再判断是否能登陆,这样设计虽然简单很多,但是绝对不合理。而且如果用session判断的话,那你断下电,再重启电脑后,还登不进去。
      

  10.   

    把登陆 用户的信息都保存在 APPLICATION里面啊!   然后上来一个用户 就看看  APPLICATON里面有没有这个用户就行了啊 
      

  11.   


      觉得此方法可行。浏览器关闭了,基本上session也消失了。
       或者就是用session来控制
      

  12.   


    很多都说放到session里,这个是非常忌讳的吧,这么多东西往session里塞。BS跟CS还是有区别的,CS能做到,BS想做到这么强大,不知道会有什么方法。说的都有道理,但是如果用户是非法退出(直接关浏览器)session就不会立马失效,session或数据库里的标识又这么及时清除呢?又问:如何知道用户是非常规退出的呢?   请赐教!