JavaWeb监听器Listener

简介: JavaWeb监听器Listener

Listener 监听器介绍


  Listener 监听器是 JavaWeb 三大组件之一。JavaWeb 的三大组件分别是:Servlet 程 序、Listener 监听器、Filter 过滤器。


       监听器是用于监听某种变化(对象创建/销毁, 增删改等等属性变化),某个变化都有自己对应的调用方法。


       继承对应监听器的接口并重写方法,就可以使用监听器完成自己想要的功能,方法的实现功能由程序员决定。


JavaWeb 的监听器


ServletContextListener 监听(比较常用)


    作用:监听 ServletContext 创建或销毁( Web 应用启动时,会自动创建 ServletContext), 即生命周期监听。例如:加载初始化的配置文件。


ServletContextListener 监听 方法


   void contextInitialized(ServletContextEvent servletContextEvent) 监听Servletcontext 被创建行为


       void contextDestroyed(ServletContextEvent servletContextEvent) 监听Servletcontex被销毁 行为


ServletContextAttributeListener 监听器


       作用:监听 ServletContext 属性变化


ServletContextAttributeListener 监听方法


       void attributeAdded(ServletContextAttributeEvent event) 添加属性

       void attributeReplaced(ServletContextAttributeEvent event) 替换属性

      void attributeRemoved(ServletContextAttributeEvent event) 移除属性

public class MyServletContextAttributeListener implements ServletContextAttributeListener {
    @Override
    public void attributeAdded(ServletContextAttributeEvent               servletContextAttributeEvent) {
        System.out.println("添加了 servletContext 属性名= "                +servletContextAttributeEvent.getName() + " 属 性 值 =" +
        servletContextAttributeEvent.getValue());
    }
    @Override
    public void attributeRemoved(ServletContextAttributeEvent     servletContextAttributeEvent)
    {
        System.out.println("删除了 servletContext 属性");
    }
    @Override
    public void attributeReplaced(ServletContextAttributeEvent     servletContextAttributeEvent)
    {
        System.out.println("替换了 servletContext 属性 ");
    }
}


HttpSessionListener 监听器


 作用:监听 Session 创建或销毁,即生命周期监听(和ServletContextListener 监听一样,只是监听对象不同)。

public class MyHttpSessionListener implements  HttpSessionListener {
    @Override
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
        System.out.println("SessionEvent 创建,完成 WEB 初始化的工作..");
    }
    @Override
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
        System.out.println("SessionEvent 销毁..");
    }
}


HttpSessionAttributeListener 监听器


   作用:监听 Session 属性的变化


HttpSessionAttributeListener 监听器方法


       void attributeAdded(ServletRequestAttributeEvent srae) 添加属性


       void attributeReplaced(ServletRequestAttributeEvent srae) 替换属性


       void attributeRemoved(ServletRequestAttributeEvent srae) 移除属性


ServletRequestListener 监听


作用:监听 Request 创建或销毁,即 Request 生命周期监听。


ServletRequestListener 监听方法(和前面差不多,只是对象的区别):


       void requestInitialized(ServletRequestEvent sre) 创建 request


       void requestDestroyed(ServletRequestEvent sre) 销毁 request


个人理解,如有错误,欢迎指教,谢谢。

相关文章
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
501 37
|
2月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
39 2
|
2月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
87 5
|
2月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
76 1
|
3月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
|
3月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
131 2
|
2月前
|
Java C#
Java的监听处理事件--小球移动案例
Java的监听处理事件--小球移动案例
20 0
|
3月前
|
SQL JSON JavaScript
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
Vue 指令、生命周期、this和$、vue脚手架进行模块化开发/ElementUI框架、综合案例,element商品列表展示增删改查
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
|
5天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者