编程语言
首页 > 编程语言> > Java监听器

Java监听器

作者:互联网

监听器

实现一个监听器的接口;(有很多种)

  1. 编写一个监听器,实现监听器接口,重写方法
package com.yang.listener;

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

//统计网站在线人数:统计session
public class OnlineCountListener implements HttpSessionListener {

    //创建session的监听:看你的一举一动
    //一旦创建一个session就会触发一次这个时机
    public void sessionCreated(HttpSessionEvent se) {
        ServletContext ctx = se.getSession().getServletContext();
        System.out.println(se.getSession().getId());
        Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");
        if (onlineCount==null){
            onlineCount = new Integer(1);
        }else{
            int count = onlineCount.intValue();
            onlineCount = new Integer(count+1);
        }
        ctx.setAttribute("OnlineCount",onlineCount);
    }

    //销毁session的监听
    //一旦销毁一个session就会触发一次这个事件
    public void sessionDestroyed(HttpSessionEvent se) {
        ServletContext ctx = se.getSession().getServletContext();
        Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");
        if (onlineCount==null){
            onlineCount = new Integer(0);
        }else{
            int count = onlineCount.intValue();
            onlineCount = new Integer(count-1);
        }
        ctx.setAttribute("OnlineCount",onlineCount);
    }
}
/*
Session销毁:
    1.手动销毁 getSession().invalidate()
    2.自动销毁
 */
  1. 在web.mxml中配置监听器
<listener>
        <listener-class>com.yang.listener.OnlineCountListener</listener-class>
    </listener>

  1. 看情况是否使用

标签:Java,ctx,session,监听器,Integer,onlineCount,se
来源: https://blog.csdn.net/L6666688888/article/details/122742439