• 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
  • 相关阅读:
    UICollectionView
    叶酸&适配体修饰DNA纳米载体|CdS纳米颗粒修饰DNA|科研试剂
    CentOS系统磁盘的分区格式化和挂载操作
    小程序原生开发中的onLoad和onShow
    vim的IDE进阶之路
    Web Components详解-Shadow DOM样式控制
    java劳务外包管理系统springboot+vue
    Python:了解python基础知识
    详细讲解 —— 多线程初阶(一)认识线程(Java EE初阶)
    内核调试环境:buildroot/debootstrap制作文件系统、编译内核、QEMU模拟
  • 原文地址:https://blog.csdn.net/qq_52002412/article/details/126256419