javaWeb监听器

本文详细介绍了JavaWeb中的监听器,包括监听器的概念、组件、分类和开发步骤。内容涵盖监听ServletContext、Session和Request域对象的创建、销毁及属性变更。同时,对一类、二类和三类监听器进行了深入解析,提供了具体的实现和测试示例。
摘要由CSDN通过智能技术生成

javaWEB监听器

概述

Listener 表示监听器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。
监听器可以监听就是在 application,session,request 三个对象创建、销毁或者往其中添加修改删除属性时自动
执行代码的功能组件。

监听器的组件:

监听器可以大致分为四个组件(方便理解)

事件源:事件发生的源头
监听器:监听事件发生
绑定:将监听器绑定到事件源
事件:能够触发监听器的事

监听器分类

Servlet规范中提供了8个监听器
按功能进行划分将其分成三类,如下:

一类:监听三个域对象的创建和销毁的监听器
二类:监听三个域对象的属性变更的监听器。(属性添加、属性移除、属性替换)
三类:监听HttpSession对象中的JavaBean的状态的改变。(绑定、解除绑定、钝化、活化)

监听器分类 监听器名称 作用
ServletContext监听 ServletContextListener 监听ServletContext对象的创建和销毁
ServletContextAttributeListener 监听ServletContext对象中属性的增删改
Session监听 HttpSessionListener 监听Session对象的创建和销毁
HttpSessionAttributeListener 监听Session对象中属性的增删改
HttpSessionBindingListener 监听对象与Session的绑定与解除
HttpSessionActivationListener 监听Session的激活
Request监听 ServletRequestListener 监听Request对象的创建和销毁
ServletRequestAttributeListener 监听Request对象中属性的增删改

监听器的开发步骤

1.自定义类实现一类监听器
2.重写监听器中的方法
3.配置xml配置文件或注解配置

配置方式:

/**
 * 监听器开发步骤
 */
public class FirstListener implements ServletContextListener {
   
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) 
{
   
        /**
         * 监听ServletContext域的初始化,随着服务器的启动
         */
        System.out.println("ServletContext初始化");
    }
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
   
        //监听ServletContext域的销毁,随着服务器的关闭
        System.out.println("ServletContext销毁");
    }
}

配置xml文件:

<listener>
    <listener-class>com.gx.listener.FirstListener</listener-class>
</listener>

注解方式:

@WebListener,加了该注解默认配置了监听器

/**
 * 监听器开发步骤
 */
@WebListener
public class FirstListener implements ServletContextListener {
   
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
   
        /**
         * 监听ServletContext域的初始化,随着服务器的启动
         */
        System.out.println("ServletContext初始化");
    }
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
   
        /**
         * 监听ServletContext域的销毁,随着服务器的关闭
         */
        System.out.println("ServletContext销毁");
    }
}

一类监听器

监听三个域对象(ServletContext、Session、Request)的创建与销毁

监听ServletContext域对象

实现ServletContextListener接口并覆盖方法

  1. 监听服务器启动的时候创建ServletContext对象时

  2. 监听服务器关闭的时候ServletContext对象被销毁掉

/**
 * 监听ServletContext
 */
@WebListener
public class TestServletContextListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        /**
         * 监听ServletContext域的初始化,随着服务器的启动
         */
        System.out.println("ServletContext初始化");
    }
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        /**
         * 监听ServletContext域的销毁,随着服务器的关闭
         */
        System.out.println("ServletContext销毁");
    }
}

监听Ses

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值