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: