• Servlet学习之Listener


    1.前言

    监听器是Servlet规范中的一员,就像Filter一样。在Servlet中所有的监听器接口都是以“Listener”结尾。

    而监听器的作用就是,给我们提供一个特殊的时机(比如session中放入参数时),而在这个特殊的时机如果我们想要做些什么的话,就要使用刀监听器了。

    2.监听器的种类

    jakarta.servlet包

    • ServletContextListener
    • ServletContextAttributeListener
    • ServletRequestListener
    • ServletRequestAttributeListener

    这几个类一眼就知道是监听Servlet域对象的数据变动的。

    jakarta.servlet.http包

    • HttpSessionListener
    • HttpSessionAttributeListener
      • 该监听器需要使用@WebListener注解进行标注。
      • 该监听器监听的是什么?是session域中数据的变化。只要数据变化,则执行相应的方法。主要监测点在session域对象上。
    • HttpSessionBindingListener
      • 该监听器不需要使用@WebListener进行标注。
      • 假设User类实现了该监听器,那么User对象在被放入session的时候触发bind事件,User对象从session中删除的时候,触发unbind事件。
      • 假设Customer类没有实现该监听器,那么Customer对象放入session或者从session删除的时候,不会触发bind和unbind事件。
    • HttpSessionIdListener
      • session的id发生改变的时候,监听器中的唯一一个方法就会被调用。
    • HttpSessionActivationListener
      • 监听session对象的钝化和活化的。
      • 钝化:session对象从内存存储到硬盘文件。
      • 活化:从硬盘文件把session恢复到内存。

    3.实现一个监听器

    这里我们以ServletContextListener为例:

    • 首先我们需要编写一个类实现ServletContextListener接口,并且实现里面的方法。

      • void contextInitialized(ServletContextEvent event)
        void contextDestroyed(ServletContextEvent event)
        
        • 1
        • 2
    • 其次在web.xml文件中对ServletContextListener进行配置,如下:

      • <listener>
            <listener-class>com.bjpowernode.javaweb.listener.MyServletContextListenerlistener-class>
        listener>
        
        • 1
        • 2
        • 3
  • 相关阅读:
    重修之Java-基础篇-流程控制
    [安全开发] SQL注入扫描(一股子GPT味~)
    技术分享:深入浅出讲解GLSB是什么?
    新版TCGA的突变数据SNP下载和整理
    设计模式——里氏代换原则
    rocketmq消息写入流程
    易点易动:解决纸质固定资产审批痛点,助您高效自定义审批流程
    window cmd/PowerShell 实时查看监控日志命令Get-Content,类似与linux shell的tail命令
    2022pycharm:虚拟环境的启用与删除
    win10新建文件夹必须刷新才能显示
  • 原文地址:https://blog.csdn.net/qq_52002412/article/details/126256419