Java教程

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实时记录在线人数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!