zoukankan      html  css  js  c++  java
  • 监听Listener的简介及分类

    一、监听器简介

      > Listener是JavaWeb中三大组件之一。Servlet、Filter、Listener

      > 三大组件都有的共同特点,都需要实现一个接口,并在web.xml文件配置。

        监听器:朝阳群众

        监听对象:明星

        监听的事件:干坏事

        调用方法:报警

      > JavaWeb中的监听器的监听对象是谁?

        ServletContext

        HttpSession

        ServletRequest

      >编写一个监听器的步骤:

          1.创建一个类并实现一个接口。

          2.在web.xml文件中注册监听器。

    二、监听器分类

      > JavaWeb中的监听器共有三种,共8个监听器

      1、生命周期监听器,监听三个对象的创建和销毁的事件。[3个]

      2、 属性监听器,监听三个对象中属性的变化。[3个]

      3、session对象监听器,将它session中的属性,以及session的活化和钝化。【2个】

      1、生命周期监听器

        ServletContextListener——ServletContext生命周期监听器

            1. void contextDestroyed(ServletContextEvent sce) —— 该方法在ServletContext对象销毁前调用

            2. void contextInitialized(ServletContextEvent sce) —— 该方法在ServletContext对象创建之前调用

            3. ServletContextEvent 对象可以获取到ServletContext对象

              ServletContextEvent.getServletContext();

        HttpSessionListener——HttpSession生命周期监听器   

            1. void sessionCreated(HttpSessionEvent se) —— 该方法在Session创建时调用

            2. void sessionDestroyed(HttpSessionEvent se) —— 在session销毁时调用  

            3. HttpSessionEvent —— 可以获取HttpSession对象

        ServletRequestListener——ServletRequest生命周期监视器

            1. void requestDestroyed(ServletRequestEvent sre) ——在request对象销毁时调用

            2. void requestInitialized(ServletRequestEvent sre) ——在request对象创建时调用



      2.属性监听器

          > 属性监听器,监听三个域中的属性的变化:添加一个属性,替换一个属性,移除一个属性

         ServletContextAttributeListener——监听ServletContext中的属性的变化

            1.void attributeAdded(ServletContextAttributeEvent scab) —— 当向ServletContext中添加属性时调用

            2.attributeRemoved(ServletContextAttributeEvent scab) —— 移除属性时调用

            3.attributeReplaced(ServletContextAttributeEvent scab) —— 替换一个属性时调用

        HttpSessionAttributeListener

            1.void attributeAdded(HttpSessionBindingEvent se)

            2.void attributeRemoved(HttpSessionBindingEvent se)

            3.void attributeReplaced(HttpSessionBindingEvent se)

              参数类型:HttpSessionBindingEvent

                  1.可以获取到属性名 getName()

                  2.可以获取属性的旧值 getValue()

                  3.可以获取到HttpSession对象 getSession();

        ServletRequestAttributeListener
            1.void attributeAdded(ServletRequestAttributeEvent srae)

            2.void attributeRemoved(ServletRequestAttributeEvent srae)

            3.void attributeReplaced(ServletRequestAttributeEvent srae)

    > 以下两个监听器监听session域中的属性的。

      3、HttpSessionBindingListener
          > 监听session域中某一个类的实例的添加和移除。

          > 该接口由JavaBean来实现,不需要再web.xml文件配置

        1.valueBound(HttpSessionBindingEvent event) —— 当该类的实例,作为属性设置进session域中时调用

        2.valueUnbound(HttpSessionBindingEvent event) —— 当该类的实例,从session域中被移除时调用

      4、HttpSessionActivationListener

           监听session域中的某类属性,和session一起活化和钝化的事件。

           该接口由JavaBean来实现,同样不需要再web.xml中配置

        1.void sessionDidActivate(HttpSessionEvent se) —— 当前对象和session一起被活化到内存时调用

        2.void sessionWillPassivate(HttpSessionEvent se) —— 当前对象和session一起钝化到硬盘时调用






  • 相关阅读:
    bootstrap 网格系统学习
    在asp.net web api中利用过滤器设置输出缓存
    解决在开发环境中访问json配置文件时报HTTP 错误 404.3
    Newtonsoft.Json序列化和反序列
    装饰者模式学习
    SQL server跨库查询
    python-安装xlrd xlwt 插件
    vim 实际行跟屏幕行移动命令
    vim-缓存区中打开另外一个文件的方法
    vim 计算器寄存器使用
  • 原文地址:https://www.cnblogs.com/java-zmj/p/7921422.html
Copyright © 2011-2022 走看看