可以获取用户登录的ip地址 要是是同一个ip地址 提示用户已经登录!

解决方案 »

  1.   

    这种现象属于session异常,只需要一行代码就可以处理,好象是在session头中设置一个时间。
    具体代码忘了- - 
      

  2.   

    限制帐号登录一次后就不能再次登录。把登录的用户放到map里面,每次登录时都去检查是否已登录。
      

  3.   

    session头中设置一个时间?能否细说?
      

  4.   

    在用户表中添加一个字段 timer ,每次用户登录时,获得登录的时间(越精确越好),格式化成为时间戳,更新进入用户表中。每次用户执行操作时,验证数据库中用户的时间戳是否与当前登录用户的相同,如果不同,则提示用户的登录已经失效
      

  5.   

    我觉得限制ip是对的,因为session的生成机制比较麻烦,有的session就是根据机器的ip生成的,你这种情况估计就是碰到这种事了,所以要做个限制,同一ip只能一个登录……期待更好的办法
      

  6.   

    前台验证只是一方面,后台也可以struts的拦截器和spring的切入点都可以验证,存在上面的问题是因为你指定了session的值
      

  7.   


    用户A和用户B是两个不同账号登陆的话互不影响Session。
    如果你表达的意思是防止同一个账号异地多人登陆的话,一般解决的方法是在数据库德用户表中增加一个字段来记录登陆情况,比如增加一个isLogin字段 。每次登陆的时候要查看isLogin字段值,如果是N的话没有人登陆,并且当前可登陆,登陆成功后把isLogin字段设成Y,这样其他地方再有一个用户用此账号登陆的时候发现isLogin是Y,拒绝登陆。当然要注意推出的时候一定要拔isLogin字段变回N,要不然下次无法登陆了。这种方法要考虑问题比较多, 比如要监听Session,因为Session过期,一定要把isLogin值变回N。还有浏览器突然挂掉了,服务器挂掉了。都涉及到Y值未变回N的情况。
      

  8.   


    <%//防止开多个页面时session异常 
    response.setDateHeader("Expires", (new Date(0)).getTime());
    %>