【Javaweb】监听器

监听器


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


  • 编写一个监听器


实现监听器的接口并重写里面的方法


package com.hxl.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{
            //这样就可以吧Interger转变成int
            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{
            //这样就可以吧Interger转变成int
            int count = onlineCount.intValue();
            onlineCount = new Integer(count - 1);
        }
        ctx.setAttribute("OnlineCount",onlineCount);
    }
    /*
    Session的销毁:
    1.手动销毁  getSession().invalidate();
    2.自动销毁  在web.xml中配置过期时间
     */
}


  • 在web.xml中注册监听器


<!--注册监听器-->
<listener>
    <listener-class>com.hxl.listener.OnlineCountListener</listener-class>
</listener>


  • 看情况是否使用。
上一篇:将文件夹下的所有txt文件加载到本文档中


下一篇:PHP:常用功能整理