如何知道所有在线的用户 (保存所有在线登录人信息,此处为后台人员)

增加以下代码:
登录中:
   //用户信息
  loginhou hou =   loginhoumapper .findbyname(name);         
    //获得全局变量中增加用户信息
    ServletContext sc = session.getServletContext();
     Map map = (Map) sc.getAttribute( "loginhous"  );
    map.put(hou.getId(), hou);
 
session监听器中:
public  void  sessionDestroyed(HttpSessionEvent se) {
          HttpSession session = se.getSession();
          loginhou loginhou = (loginhou) session.getAttribute( "loginhou"  );
 
            // 获得全局变量中删除用户信息
          ServletContext sc = session.getServletContext();
           Map map = (Map ) sc.getAttribute( "loginhous"  );
          map.remove(loginhou.getId());
          
}
ServletContext监听器中:
      public  void  contextInitialized(ServletContextEvent arg0) {
            /**
           * 启动服务器时,
           * 往ServletContext对象set(初始化)一个对象,
           * 这个对象的含义是,
           * 保存所有在线后台用户的信息
           * 结构:
           * ServletContext     全应用变量
           *        ↓                                 绑定名: loginhous
           *      Map        所有后台用户的信息
           *        ↓                                      绑定名: loginhous的id
           *    loginhou         用户的信息
           */
          ServletContext sc = arg0.getServletContext();
           Map map =  new  HashMap<String, loginhou>();
          sc.setAttribute(  "loginhous" , map);
     }
 
     

你可能感兴趣的:(用户)