首页 > 其他分享 >Listener-概述、Listener-ServletContextListener使用

Listener-概述、Listener-ServletContextListener使用

时间:2023-02-14 11:22:57浏览次数:59  
标签:ServletContextEvent ServletContextListener sce Listener 概述 ServletContext import

Listener-概述

Listener:监听器

  概念:web的三大组件之一

    事件:一件事情

    事件源:事件发生的地方

    监听器:一个对象

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

  ServletContextListener:监听ServletContext对象的创建和销毁

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

    void contextInitialzed(ServletContextEvent sce):ServletContext对象创建后调用该方法

Listener-ServletContextListener使用

步骤:

  1.定义一个类,实现ServletContextListener接口

  2.复写方法

  3.配置

    1.web.xml

      <listener>

        <listener-class>com.example.listener.ContextLoaderListener</listener-class>

      </listener>

  指定初始化参数<context-param>

    2.注解:

      @WebListener

创建ContextLoaderListener类

package com.example.listener;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import java.io.FileInputStream;

@WebListener
public class ContextLoaderListener implements ServletContextListener {

    /**
     * 监听ServletContext对象创建的,ServletContext对象服务器启动后自动创建
     * @param sce
     */
    @Override
    public void contextInitialized(ServletContextEvent sce) {

        // 加载资源文件
        // 获取ServletContext对象
        ServletContext servletContext = sce.getServletContext();

        // 记载资源文件
        String initParameter = servletContext.getInitParameter("contextConfigLocation");

        // 获取真实路径
        String realPath = servletContext.getRealPath(initParameter);

        // 加载进内存
        try {
            FileInputStream fileInputStream = new FileInputStream(realPath);
            System.out.println(fileInputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("ServletContext对象被创建");
    }

    /**
     * 在服务器关闭后,ServletContext对象被销毁,当服务器正常关闭后该方法被盗用
     * @param sce
     */
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("ServletContext对象被销毁了");
    }
}

web.xml

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

    <!-- <filter>
        <filter-name>demo1</filter-name>
        <filter-class>com.example.filter.FilterDemo1</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>demo1</filter-name>

        &lt;!&ndash; 拦截路径&ndash;&gt;
        <url-pattern>/*</url-pattern>

       &lt;!&ndash; <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>ERROR</dispatcher>
        <dispatcher>ASYNC</dispatcher>&ndash;&gt;

    </filter-mapping>-->

    <!-- 配置监听器 -->
    <!--<listener>
            <listener-class>com.example.listener.ContextLoaderListener</listener-class>
    </listener>-->
    <!-- 指定初始化参数 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/applicationContext.xml</param-value>
    </context-param>

</web-app>

applicationContext.xml

<?xml version="1.0" encoding="utf-8" ?>
<bean></bean>

标签:ServletContextEvent,ServletContextListener,sce,Listener,概述,ServletContext,import
From: https://www.cnblogs.com/wsfj/p/17118987.html

相关文章

  • JQuery概述 快速入门
    概念:一个JavaScript框架简化JS开发Jquery是一个快速简洁的JavaScript框架是续Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)Jquery设计的宗......
  • Listener监听器概述 实现方式
    概念web的三大组件之一事件监听机制事件:一件事情事件源:事件发成的地方监听器:一个对象注册监听:将事件事件源监听器绑定在一......
  • 动态代理 概述 增强方法
    增强对象的功能设计模式:一些通用的解决固定问题的方式1装饰模式2代码模式概念:1真是对象被代理的对象2代理对象......
  • Filter概述、Filter快速入门
    Filter概述生活中的过滤器:净水器,空气净化器web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能过滤器的作用:一般用于完成通用的操作:登录验......
  • 01. C语言概述
    一、C语言简介1.1、什么是C语言  C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产......
  • redis概述与redis下载&安装
     redis概述与redis下载&安装redis概述 redis是一款高性能的NOSQL系列的非关系型数据库什么是NOSQLNoSQL(NoSQL=NotOnlySQL),意即“不仅仅是SQL”,是一项......
  • Git 概述
    一、Git概述Git 是一个免费开源的分布式版本控制系统,管理代码的工具,具有廉价的本地库,可以储存在本地磁盘上,方便的暂存区域和多个工作分支等特性,性能由于Subversion,C......
  • 776~777 JSTL概述,常用标签
    JSTL1.概念:JavaServerPagesTagLibrary JSP标准标签库是由Apache组织提供的开源的免费的jsp标签      <标签>2.作用:用于简化和替换jsp页......
  • JSON概述与JSON语法定义
    JSON的概念概念:JavaScript Object Notation JacaScript对象表示法json现在多用于存储和交换文本信息的语法进行数据的传输JSON比XML更小更快,更易解析 ......
  • 类和对象概述
    面向过程与面向对象区别、类和对象的概念、对象的创建和使用,对象的内存解析的简要介绍。Author:MsuenbDate:2023-02-07面向过程与面向对象面向过程和面向对象都是......