统计用户在线登陆人数

  1. 服务器启动时,开启一个线程进行记录,线程对象中定义一个静态变量
public class ResourceLog implements Runnable {
    public static Map<String, HttpSession> sessionMap = new HashMap<String, HttpSession>();
..........
}

系统启动执行以下,开启线程服务器

ResourceLog resourceLog = new ResourceLog();
Thread thr = new Thread(resourceLog, "资源log记录");
thr.start();
  1. 用户登陆时,将session保存到Map对象中。
//登陆
HttpSession session = request.getSession();
String sessionId = session.getId();
ResourceLog.sessionMap.put(sessionId, session);
  1. 用户退出时,将session从Map对象中删除。 退出包括:正常退出 、异常退出(session超时)
//退出
HttpSession session = request.getSession();
String sessionId = session.getId();
ResourceLog.sessionMap.remove(sessionId);
  1. 获取当前用户在线人数为
ResourceLog.sessionMap.size();
相关文章
相关标签/搜索