13、JavaWeb三大组件之Listener

1、Listener概述

Listener 表示监听器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一

监视器可以监听就是在 application、session、request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。

request 和 session 我们学习过。而 applicationServletContext 类型的对象。

ServletContext 代表整个web应用,在服务器启动的时候,tomcat会自动创建该对象。在服务器关闭时会自动销毁该对象。

2、分类

JavaWeb提供了8个监听器:

监听器分类 监听器名称 作用
ServletContext监听 ServletContextListener 用于对ServletContext对象进行监听(创建、销毁)
ServletContextAttributeListener 对ServletContext对象中属性的监听(增删改属性)
Session监听 HttpSessionListener 对session对象的整体状态的监听(创建、销毁)
HttpSessionAttributeListener 对Session对象中的属性监听(增删改属性)
HttpSessionBindingListener 监听对象于Session的绑定和解除
HttpSessionActivationListener 对Session数据的钝化和活化的监听
Request监听 ServletRequestListener 对Request对象进行监听(创建、销毁)
SerlvetRequestAttributeListener 对Request对象中属性的监听(增删改属性)

这里面只有 ServletContextListener 这个监听器后期我们会接触到,ServletContextListener 是用来监听 ServletContext 对象的创建和销毁。

ServletContextListener 接口中有以下两个方法

    void contextInitialized(ServletContextEvent sce)ServletContext 对象被创建了会自动执行的方法

    void contextDestroyed(ServletContextEvent sce)ServletContext 对象被销毁时会自动执行的方法

3、代码演示

我们演示一下ServletContextListener 监听器

        定义一个类,实现ServletContextListener 接口

        重写接口所有的抽象方法

        使用@WebListener进行配置

代码如下:

@WebListener
public class ContextLoaderListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //加载资源
        System.out.println("ContextLoaderListener...");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        //释放资源
    }
}

  启动服务器,就可以在启动的日志信息中看到contextInitialized() 方法输出的内容,同时也说明了 ServletContext 对象在服务器启动的时候被创建了。

猜你喜欢

转载自blog.csdn.net/weixin_56058578/article/details/128112972