• 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
  • 相关阅读:
    BFS:多源BFS问题
    Zabbix5.0部署
    Matlab进阶绘图第59期—棒棒糖图
    一个Springboot配置顺序问题,让我直接回滚代码了
    按键中断实验
    Linux手记
    宝塔面板快速搭建贪吃蛇小游戏web网站 - 无需云服务器,网站发布上线
    [数据集][目标检测]航空发动机缺陷检测数据集VOC+YOLO格式291张4类别
    WebSocket ----苍穹外卖day8
    Python查找电脑硬盘中所有视频文件,包括隐藏文件
  • 原文地址:https://blog.csdn.net/qq_52002412/article/details/126256419