使用session统计在线人数

效果图如下

1497155-20190403100100186-450394886.png
1497155-20190403100104609-2098908295.png

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

1497155-20190403100108072-1809147595.png
1497155-20190403100116140-54417034.png

代码展示

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

转载于:https://www.cnblogs.com/tyx666/p/10647017.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值