上网找了很多资料,看不太明白,请各位大侠指教!

解决方案 »

  1.   

    用spring Security 的Session 监控实现
      

  2.   

    楼主的意思是 同一个帐号不能反复登陆吧,就是 有人用这个帐号登陆时 禁止再次登陆。
    判断SEESION就可以了
      

  3.   

    监听器如何判断?
    public synchronized void sessionCreated(HttpSessionEvent se){
          HttpSession session=se.getSession();
       }   public synchronized void sessionDestroyed(HttpSessionEvent se){
          HttpSession session=se.getSession();
       }如果是同一个页面,虽然注销了,好像SESSION是一样的.监听器没有东西.
      

  4.   

    不知道楼主说的哪种情况
    如果是在同一台机子上不能登录两次,那么用session就可以
    但是如果是这个账号不管在哪台机子上只能登录一次
    那在表里加一个字段,判断是否登录就好。
      

  5.   

    如何判断啊.请教了,
    session.isValid()?
    session.invalidate();之后,麻烦的事接着来.如果不这样,就session.removeAttribure();在session过期后又会出现 session is already invalidate;的错误,
    如何判断session是否可用呢?
    我用一个静态MAP保存SESSION.getId().+session
    然后 ID和用户名对应放在APPLICATION里.
    然后每次登录的人检查APPLICATION里用户名有没有相关的SID,
    如果有就到MAP里查询session.id,找到的话再对这个session进行removeAttribute操作.  结果过期了还是会出现session is already invalidate;的错误,这个错误显然是这样的.
    接着把新的SID+SESSION放到MAP,
    然后监听器里监听到会话过期了就把它从MAP里删除.创建了就放进会话
      

  6.   


    不同的浏览器/电脑上就不行了吧,还是要把登录信息记录到一个第三方的地方。比如数据表或者内存的结构里。spring 的Security也是有这个问题吧?xxbdgood luck
      

  7.   

    两个方案,一是保存所有用户集合,每次有登录的时候判断用户是否已存在;二是数据库加入标识字段或登录统计表。
    无论哪种,都要监听session销毁,即时删除用户或改变登录状态。
      

  8.   

    不用那么麻烦就直接取现在登录的用户名,比较再次登录的username就可以了
      

  9.   

    在Application作用域中做个List,每个用户登录就记录下来。会话过期或退出就删除,就可以实现单点登录。