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());
}
}