JSP中怎么实现一个帐号不让多个人同时使用,就是我上线时,别人用这个帐号就上不了

解决方案 »

  1.   

    你可以用servlet过滤的方式,在JSP开发详解中有详细的例子的
      

  2.   

    原来做.net的时候的思路:
    1:在数据库的登录历史表中记录每一个用户的ip
    2:退出的时候记录退出时间
    3:在用户登录的时候判断,这个用户的登录ip是否和数据库中的ip一直,如果不一至。则检查是否这个用户的最后一条登录记录中的退出时间是否存在。
    4:如果不存在退出时间,说明这个时候是有同一个用户在另一台机器上的登录
    5:清空前一次登陆着的session,在他进行下一次操作的时候,就会自动退出。大概就是这么个思路
      

  3.   

    有两种方法:
    1,在数据库的帐号表添加一个登陆状态字段,未登陆的用户状态设为0,如果该用户登陆成功,则其状态字段设为1,注销成功就设为0
    2,不需要在数据库加字段,直接在Action里判断Application里是否已有当前登陆的帐号,Application中就保存当前已经登陆成功的帐号.
      

  4.   

    我到觉得应该是session+caizhh(雨中の云) 说的第一种方法两中结合起来一起做检查,方可实现
      

  5.   

    我在数据库中可以加字段,用application作用域也可以,但是我点IE上的×退出时那个事件我怎么知道,不知道他什么时候下线我怎么取消作用域,session或数据库中的值,servlet中有个方法是当session结束时自动执行,不过即使我关了IE也要等session有效期结束才执行,关了IE不会马上执行
      

  6.   

    你也可以加一个JS判断窗口关闭的
    <script language="javascript">
    window.onbeforeunload = function() //author: meizz
    {
    var n = window.event.screenX - window.screenLeft;
    var b = n > document.documentElement.scrollWidth-20;
    if(b && window.event.clientY < 0 || window.event.altKey)
    {
    window.event.returnValue = ""; 
    }
    }
    </script>