编程语言
首页 > 编程语言> > java实时记录在线人数

java实时记录在线人数

作者:互联网

1.配置过滤器

 <listener>
     <listener-class>com.listener.SessionCount</listener-class >
  </listener>

2.登陆时记录

package com.insigma.common.listener;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map.Entry;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class SessionCountListenerSH  implements  HttpSessionListener {

/**
     * 存储sessionid:登录用户集合
     */
    private static HashMap<String,String> sessioncount=new HashMap<String,String>();

/**
     * 获取sessionid:登录用户集合
     * 下午8:25:04
     * 2021年11月6日
     * @author wangzp
     * @return
     */
    public static HashMap<String,String> getSessionCount() {
        return sessioncount;
    }

/**
     * 获取登录数量
     * 下午8:22:57
     * 2021年11月6日
     * @author wangzp
     * @return
     */
    public static int getUniqueSessioCount(){
        HashSet<String> map=new HashSet<String>();
        for(Entry<String,String> e:sessioncount.entrySet()) {
            map.add(e.getValue());
        }
        return map.size();
    }
    

/**
     * 登录成功,记录
     */
    @Override
    public void sessionCreated(HttpSessionEvent arg0) {

//登录在线,则记录

        sessioncount.put(arg0.getSession().getId(), "登录用户")
    }

/**
     * 退出登录
     */

    @Override
    public void sessionDestroyed(HttpSessionEvent arg0) {
        sessioncount.remove(arg0.getSession().getId());
    }
        
}

标签:java,在线,登录,arg0,sessioncount,实时,import,public,HashMap
来源: https://blog.csdn.net/qq_15508731/article/details/121176625