• JavaWeb三大组件之Listener


    1、Listener概述

    Listener 表示监听器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一

    监视器可以监听就是在 application、session、request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。

    request 和 session 我们学习过。而 application 是 ServletContext 类型的对象。

    ServletContext 代表整个web应用,在服务器启动的时候,tomcat会自动创建该对象。在服务器关闭时会自动销毁该对象。

    2、分类

    JavaWeb提供了8个监听器:

    监听器分类监听器名称作用
    ServletContext监听ServletContextListener用于对ServletContext对象进行监听(创建、销毁)
    ServletContextAttributeListener对ServletContext对象中属性的监听(增删改属性)
    Session监听HttpSessionListener对session对象的整体状态的监听(创建、销毁)
    HttpSessionAttributeListener对Session对象中的属性监听(增删改属性)
    HttpSessionBindingListener监听对象于Session的绑定和解除
    HttpSessionActivationListener对Session数据的钝化和活化的监听
    Request监听ServletRequestListener对Request对象进行监听(创建、销毁)
    SerlvetRequestAttributeListener对Request对象中属性的监听(增删改属性)

    这里面只有 ServletContextListener 这个监听器后期我们会接触到,ServletContextListener 是用来监听 ServletContext 对象的创建和销毁。

    ServletContextListener 接口中有以下两个方法

        void contextInitialized(ServletContextEvent sce):ServletContext 对象被创建了会自动执行的方法

        void contextDestroyed(ServletContextEvent sce):ServletContext 对象被销毁时会自动执行的方法

    3、代码演示

    我们演示一下ServletContextListener 监听器

            定义一个类,实现ServletContextListener 接口

            重写接口所有的抽象方法

            使用@WebListener进行配置

    代码如下:

    1. @WebListener
    2. public class ContextLoaderListener implements ServletContextListener {
    3. @Override
    4. public void contextInitialized(ServletContextEvent sce) {
    5. //加载资源
    6. System.out.println("ContextLoaderListener...");
    7. }
    8. @Override
    9. public void contextDestroyed(ServletContextEvent sce) {
    10. //释放资源
    11. }
    12. }

      启动服务器,就可以在启动的日志信息中看到contextInitialized() 方法输出的内容,同时也说明了 ServletContext 对象在服务器启动的时候被创建了。

  • 相关阅读:
    06 【Sass语法介绍-函数】
    问题复盘|在使用 Gson 时,报 Failed to parse date [““] 错误
    [c语言]二维数组动态分配内存
    Vue3的优化总结
    R数据分析:纵向分类结局的分析-马尔可夫多态模型的理解与实操
    【深蓝学院】基于NeRF的三维内容生成 High-quality 3D Content Creation from Images
    社区买菜系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
    企业的数据治理流程会遇到哪些挑战,又该如何处理?
    k8s中的service组件
    Android Studio开发项目——记账簿应用
  • 原文地址:https://blog.csdn.net/weixin_56058578/article/details/128112972