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

其实这是我看到网上一个帖子,根据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);
        }
      }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值