关闭

利用HashMap实现踢人功能(JAVA)

394人阅读 评论(0) 收藏 举报

其实这是我看到网上一个帖子,根据sessionid任意销毁对应的session,其实就是在打开浏览器的时候利用监听器,创建一个HashMap A 记录下对应的sessionid和session(这步很重要),但是实现踢人功能不能仅仅根据sessionid来销毁session,其实我们可以在创建一个HashMap B,记录下用户标记(如ID)和他的对应sessionid(我们不可能再踢人的时候获取到想要销毁的sessionid),然后只要有用户登录同一个帐号,我们就可以根据id在HashMap B获取到上个sessionid(要踢的人的session),直接销毁session,然后再清除HashMap B上的信息,最后put新来的用户的信息。

代码如下:

1:session监听器 hashmap a这里建立

2ACTION 或servelt

 java.util.HashMap qq=com.sessionlistener.sessionlistener.sessionl;
                      System.out.println("sesssionmap大小"+qq.size());
                      javax.servlet.http.HttpSession ss=(javax.servlet.http.HttpSession)qq.get(sessionid);
      
                      if (ss!=null)
                      {
                           ss.invalidate();
                           System.out.println("有人被踢了");
                     }
       
      
                     pp.put(user.getUserId(), request.getSession().getId());
       
                    user.setUserLastLoginIp(request.getRemoteAddr());   
                    int loginTimes = user.getUserLoginNum();
                    user.setUserLoginNum(loginTimes+1); 
                    DaoFactory.getInstance().getUserDao().update();
         
                    request.getSession().setAttribute("User", user);
                    System.out.println("登录结束后sesssionmap大小"+qq.size());
            }
      
        }
            out.print(user.getUserNickname());
        }
        else
        {
         out.print(1);
        }
      }



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3819次
    • 积分:83
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:4篇
    • 译文:0篇
    • 评论:0条
    新浪的老家
    http://blog.sina.com.cn/linshaoxu

    搬了一些以前的编程记录
    到CSDN的新家

    渣浪从今开始不再更新
    有关程序的文章
    文章分类
    文章存档