Listener监听器详解

简述

  监听器是web的三大组件之一,事件的监听机制和js中的事件监听类似。

事件 一件事
事件源 事件发生的地方
监听器 一个对象
注册监听 将事件、事件源、监听器绑定在一起,当事件源上发生某个事件时,执行监听器代码

  监听器一般用于监听三大域ServletContext、Session和Request的创建和销毁,以及域中各属性的变化

ServletContextListener监听接口

  该监听器监听ServletContext对象的创建和销毁

void contextDestroyed(ServletContextEvent sce) ServletContext对象销毁之前会调用该方法
void contextInitialized(ServletContextEvent sce) ServletContext对象销毁之后会调用该方法

监听器的编写和配置

编写

  和其余两个组件servlet和filter一样,监听器也是一个自定义的类,需实现接口,在这里这个接口就是特定的监听器接口了,这里以ServletContextListener为例

package cn.itcast.web.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class ContextLoaderListener implements ServletContextListener {

    /**
     * 监听ServletContext创建,ServletContext对象是在服务器启动时自动创建
     * 服务器启动后自动调用
     * @param servletContextEvent
     */
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("ServletContext对象被创建了.....");
    }
    /**
     * 监听ServletContext销毁,ServletContext对象是在服务器关闭时销毁
     * 服务器关闭后自动调用
     * @param servletContextEvent
     */
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("ServletContext对象被销毁了......");
    }
}

配置

  监听器的配置极其简单,因为监听器是不需要访问的,所以只要在web.xml进行了一个注册的操作即可

<listener>
    <listener-class>cn.itcast.web.listener.ContextLoaderListener</listener-class>
</listener>

  当然我们也可以用注解方式配置监听器,只需要在类上面加一个@WebListener注解即可

  

一点一点积累,一点一点蜕变!
原文地址:https://www.cnblogs.com/qq2210446939/p/14940906.html