使用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;
    }
    
}

猜你喜欢

转载自www.cnblogs.com/tyx666/p/10647017.html