使用session统计在线人数

效果图如下


这里是Chrome浏览器新登录一个用户


代码展示

package com.test.Util;

import java.util.ArrayList;

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

import com.test.model.User;
@WebListener
public class Count implements HttpSessionListener{
	
	private int num=0;
	
	@Override
	public void sessionCreated(HttpSessionEvent se) {
		// TODO 自动生成的方法存根
		num++;
		se.getSession().getServletContext().setAttribute("num", num);
	}
	
	@SuppressWarnings("unchecked")
	@Override
	public void sessionDestroyed(HttpSessionEvent se) {
		// TODO 自动生成的方法存根
		num--;
		se.getSession().getServletContext().setAttribute("num", num);
		
		//判断是否为同一用户
		ArrayList<User> list=null;
		list=(ArrayList<User>)se.getSession().getServletContext().getAttribute("list");
		
		if(CountUtil.getByUsername(list, se.getSession().getId())!=null) {
			list.remove(CountUtil.getByUsername(list, se.getSession().getId()));
		}
	}

}
package com.test.Util;

import java.util.ArrayList;
import com.test.model.User;

public class CountUtil {
	
	public static Object getByUsername(ArrayList<User> list,String username) {
		
		for(int i=0;i<list.size();i++) {
			User user=list.get(i);
			if(user.getUsername().equals(username)) {
				return user;
			}
		}
		return null;
	}
	
}
posted @ 2019-04-03 10:04  iiiiiiCode  阅读(513)  评论(0)    收藏  举报