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

增加以下代码:
登录中:
   //用户信息
  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);
     }
 
     
原文地址:https://www.cnblogs.com/jia1994/p/4261821.html