简易在线人数统计

一、编写 Listener

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * 监听Session生命周期相关的事件
 */
public class MySessiListeneron implements HttpSessionListener {
    /**
     * 当监听到session对象被创建,则会执行该方法
     */
    public void sessionCreated(HttpSessionEvent se)  {
        //ServletContext :Servlet上下文对象.
        //  WEB应用服务器会为每个web应用创建唯一一个ServletContext对象.
        //  在整个web应用中作用域最大且是所有的用户可共享的.
        //  ServletContext在web引用服务器启动则被创建, 服务器销毁此对象才会被销毁.
        //获取到ServletContext
        ServletContext sc = se.getSession().getServletContext();
        //我们会在ServletContext中绑定一个在线人数, 通过  count 这个key
        //尝试从Servletcontext中获取 count
        Object count = sc.getAttribute("count");
        if(count == null) {
            // 第一个用户上线
            sc.setAttribute("count", 1);
        }else {
            sc.setAttribute("count", (Integer)count+1 );
        }
    }
    /**
     * 当监听到session对象被销毁,则会执行该方法
     */
    public void sessionDestroyed(HttpSessionEvent se)  {
        // 可以计算人数的登陆用户的减少情况
    }
}

二、web.xml 配置文件中配置该监听器

<listener>
    <listener-class>com.atguigu.login.listener.MySessiListeneron</listener-class>
</listener>

三、JSP页面显式:

当前在线<font color="blue">${applicationScope.count}</font> 人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值