Listener

一 Listener简介

Listener是JavaWeb三大组件之一 Web中的监听器

事件监听机制

  事件: 一件事情

  事件源: 事件发生的地方

  监听器: 一个对象

  注册监听: 将事件 事件源 监听器绑定在一起 当事件源上发生某个事件后 执行监听器代码

 

二 新建一个Listener

1. 新建一个Web项目

2. 自定义一个类 实现ServletContextListener接口

/**
 * Listener快速入门
 * Created by Hy on 2020/7/3.
 */
public class ListenerDemo1 implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        // 监听ServletContext对象创建 当服务器启动后 ServletContext对象自动创建
        System.out.println("contextInitialized()");
        // 获取初始化参数
        ServletContext context = servletContextEvent.getServletContext();
        String name = context.getInitParameter("name");
        System.out.println("name = " + name);
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        // 监听ServletContext对象销毁 当服务器正常关闭后 ServletContext对象被销毁
        System.out.println("contextDestroyed()");
    }

}

 3. 配置Listener web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="//xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="//xmlns.jcp.org/xml/ns/javaee //xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!-- 配置Listener -->
    <listener>
        <listener-class>com.hy.listener.ListenerDemo1</listener-class>
    </listener>

    <!-- 初始化参数 -->
    <context-param>
        <param-name>name</param-name>
        <param-value>hy</param-value>
    </context-param>
</web-app>

 启动项目

 

三 Servlet3.0注解

/**
 * Servlet3.0注解
 * Created by Hy on 2020/7/3.
 */
@WebListener
public class ListenerDemo2 implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        // 监听ServletContext对象创建 当服务器启动后 ServletContext对象自动创建
        System.out.println("contextInitialized...");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        // 监听ServletContext对象销毁 当服务器正常关闭后 ServletContext对象被销毁
        System.out.println("contextDestroyed...");
    }

}

 

Tags: