1.  Java Listener 简介

* Java Listener
1. Java Listener(即:Java 监听器):用于监听 ServletRequest、HttpSession、ServletContext 作用域对象的创建、销毁、及其属性修改变化
2. 在 Web 项目中可以有多个 Java 监听器
3. 应用场景:
a.统计在线人数
b.统计页面访问量
c.服务器加载时数据初始化

* Listener 的使用
1. 在 web.xml 中配置监听器:
<listener>
   <listener-class>com.ncdx.listener.MyListener</listener-class>
</listener>

2. 创建 Java 类,根据需求实现相应的接口:
1)ServletRequestListener 接口 //声明了 ServletRequest 作用域对象的创建、销毁的监听方法
2)ServletRequestAttributeListener 接口 //声明了 ServletRequest 作用域对象中属性的添加、修改、删除的监听方法

3)HttpSessionListener 接口 //声明了 HttpSession 作用域对象的创建、销毁的监听方法
4)HttpSessionAttributeListener 接口 //声明了 HttpSession 作用域对象中属性的添加、修改、删除的监听方法

5)ServletContextListener 接口 //声明了 ServletContext 作用域对象的创建、销毁的监听方法
6)ServletContextAttributeListener 接口 //声明了 ServletContext 作用域对象中属性的添加、修改、删除的监听方法

3. 重写相应的监听方法
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;


public class MyListener implements ServletRequestListener,ServletRequestAttributeListener,
                                   HttpSessionListener,HttpSessionAttributeListener,
                                   ServletContextListener,ServletContextAttributeListener{

    @Override//监听request对象销毁
    public void requestDestroyed(ServletRequestEvent sre) {

    }

    @Override//监听request对象创建
    public void requestInitialized(ServletRequestEvent sre) {

    }

    @Override//监听request作用域数据的添加
    public void attributeAdded(ServletRequestAttributeEvent srae) {
    
    }

    @Override//监听request作用域数据的删除
    public void attributeRemoved(ServletRequestAttributeEvent srae) {

    }

    @Override//监听request作用域数据的修改
    public void attributeReplaced(ServletRequestAttributeEvent srae) {

    }
    
/*.....................................................................*/
    
    @Override//监听session对象的创建
    public void sessionCreated(HttpSessionEvent se) {

    }

    @Override//监听session对象的销毁
    public void sessionDestroyed(HttpSessionEvent se) {

    }

    @Override//监听session作用域数据的添加
    public void attributeAdded(HttpSessionBindingEvent se) {

    }

    @Override//监听session作用域数据的删除
    public void attributeRemoved(HttpSessionBindingEvent se) {
        
    }

    @Override//监听session作用域数据的更改
    public void attributeReplaced(HttpSessionBindingEvent se) {
        
    }

/*.........................................................................*/

    @Override//监听application对象销毁
    public void contextDestroyed(ServletContextEvent sce) {
        
    }

    @Override//监听application对象创建
    public void contextInitialized(ServletContextEvent sce) {

    }

    @Override//监听application作用域数据的添加
    public void attributeAdded(ServletContextAttributeEvent scae) {

    }

    @Override//监听application作用域数据的删除
    public void attributeRemoved(ServletContextAttributeEvent scae) {
        
    }

    @Override//监听application作用域数据的更改
    public void attributeReplaced(ServletContextAttributeEvent scae) {
        
    }
    
}
Listener

相关文章:

  • 2022-01-18
  • 2021-08-25
  • 2022-03-08
  • 2022-12-23
  • 2022-12-23
  • 2021-08-22
  • 2021-10-27
  • 2022-12-23
猜你喜欢
  • 2021-09-12
  • 2021-04-21
  • 2022-12-23
  • 2021-05-01
  • 2021-06-15
  • 2021-08-24
  • 2022-12-23
相关资源
相似解决方案