狂神说 javaweb 25集:监听器

25,监听器

12、监听器

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

  1. 编写一个监听器

    实现监听器的接口…

    在这里插入图片描述

依赖的jar包

OnlineCountListener.java

 package com.study.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 cxt = se.getSession().getServletContext();
 
         System.out.println(se.getSession().getId());
         Integer onlineCount = (Integer) cxt.getAttribute( "OnlineCount" );
 
         if (onlineCount == null){
             onlineCount = new Integer( 1 );
        }else {
             int count = onlineCount.intValue();
 
             onlineCount = new Integer( count+1 );
        }
         cxt.setAttribute( "OnlineCount", onlineCount);
 
    }
 
     //销毁session的监听
     public void sessionDestroyed(HttpSessionEvent se) {
         ServletContext cxt = se.getSession().getServletContext();
         se.getSession().invalidate();
         Integer onlineCount = (Integer) cxt.getAttribute( "OnlineCount" );
 
         if (onlineCount == null){
             onlineCount = new Integer( 1 );
        }else {
             int count = onlineCount.intValue();
 
             onlineCount = new Integer( count-1 );
        }
         cxt.setAttribute( "OnlineCount", onlineCount);
    }
 
     /*
     Session 销毁:
     1.手动销毁 se.getSession().invalidate();
     2.自动销毁 <session-config>
              <session-timeout>1</session-timeout>
              </session-config>
 
     */
 }
  1. web.xml中注册监听器

 <!--注册监听器-->
 <listener>
     <listener-class>com.study.listener.OnlineCountListener</listener-class>
 </listener>
  1. 看情况是否使用!

posted @ 2022-05-22 22:51  坚持做  阅读(115)  评论(0)    收藏  举报