1.  Listener   监听器简介
                    Listener是JavaWeb中三大组件之一。Servlet、Filter、Listener
                    三大组件都有的共同特点,都需要实现一个接口,并在web.xml文件配置。

2. JavaWeb中的监听器的监听对象是谁?
                    ServletContext
                    HttpSession
                    ServletRequest

3. 监听器分类 
                    JavaWeb中的监听器共有三种,共8个监听器
                    生命周期监听器,监听三个对象的创建和销毁的事件。(3个)
                    属性监听器,监听三个对象中属性的变化。(3个)
                    session对象监听器,将它session中的属性,以及session的活化和钝化。(2个)

4.生命周期监听器:

ServletContextListener
                             ServletContext生命周期监听器
                                   void contextDestroyed(ServletContextEvent sce) 
                                   该方法在ServletContext对象销毁前调用
     
                                   void contextInitialized(ServletContextEvent sce)  
                                   该方法在ServletContext对象创建之后调用。
 
                                   ServletContextEvent 对象可以获取到ServletContext对象
                                   ServletContextEvent.getServletContext();


    
                    HttpSessionListener
                             HttpSession生命周期监听器
                                   void sessionCreated(HttpSessionEvent se) 
                                   该方法在Session创建时调用
     
                                   void sessionDestroyed(HttpSessionEvent se) 
                                   在session销毁时调用
    
                                   HttpSessionEvent
                                  可以获取HttpSession对象
   
                     ServletRequestListener

ServletRequest生命周期监听器
                                   void requestDestroyed(ServletRequestEvent sre) 
                                   在request请求响应时调用
   
                                   void requestInitialized(ServletRequestEvent sre) 
                                   在request请求开始时调用
   
                                   ServletRequestEvent
                                   可以获取ServletContext对象和ServletRequest

编写一个监听器的步骤:
                         1.创建一个类并实现一个接口。
                         2.在web.xml文件中注册监听器。

5. 属性监听器

属性监听器,监听三个域中的属性的变化:

添加一个属性,替换一个属性,移除一个属性

ServletContextAttributeListener

监听ServletContext中的属性的变化

void attributeAdded(ServletContextAttributeEvent scab)

当向ServletContext中添加属性时调用

attributeRemoved(ServletContextAttributeEvent scab)

移除属性时调用

attributeReplaced(ServletContextAttributeEvent scab)

替换一个属性时调用

HttpSessionAttributeListener

void attributeAdded(HttpSessionBindingEvent se)

void attributeRemoved(HttpSessionBindingEvent se)

void attributeReplaced(HttpSessionBindingEvent se)

HttpSessionBindingEvent

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

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

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

(1)实现接口

(2)做运算

结果

(3)

结果

ServletRequestAttributeListener

void attributeAdded(ServletRequestAttributeEvent srae)

void attributeRemoved(ServletRequestAttributeEvent srae)

void attributeReplaced(ServletRequestAttributeEvent srae)

6.  监听session域中的属性的。
                       HttpSessionBindingListener
                       监听session域中某一个类的实例的添加和移除。
                       该接口由JavaBean来实现,不需要再web.xml文件配置
                       valueBound(HttpSessionBindingEvent event) 
                       当该类的实例,作为属性设置进session域中时调用
                       valueUnbound(HttpSessionBindingEvent event)
                       当该类的实例,从session域中被移除时调用

7. HttpSessionActivationListener
                       监听session域中的某类属性,和session一起活化和钝化的事件。
                       该接口由JavaBean来实现,同样不需要再web.xml中配置,但是该JavaBean需要实现Serializable接口!
                       void sessionDidActivate(HttpSessionEvent se) 
                       当前对象和session一起被活化到内存时调用
                       void sessionWillPassivate(HttpSessionEvent se) 
                       当前对象和session一起钝化到硬盘时调用

活化后:

170817关于Listener的知识点的更多相关文章

  1. servlet filter listener interceptor 知识点

    这篇文章主要介绍 servlet filter listener interceptor 之 知识点.博文主要从 概念,生命周期,使命介绍其区别.详情如下:   概念 生命周期 使命 servlet ...

  2. 170817关于AJAX的知识点

    1.AJAX                  [1] AJAX简介                        全称: Asynchronous JavaScript And XML        ...

  3. SpringBoot系列教程web篇Listener四种注册姿势

    java web三要素Filter, Servlet前面分别进行了介绍,接下来我们看一下Listener的相关知识点,本篇博文主要内容为SpringBoot环境下,如何自定义Listener并注册到s ...

  4. 170817关于JSON知识点

    1.  JSON                [1] JSON简介                         JSON全称 JavaScript Object Notation         ...

  5. 程序员必懂:javaweb三大框架知识点总结

    原文链接:http://www.cnblogs.com/SXTkaifa/p/5968631.html javaweb三大框架知识点总结 一.Struts2的总结 1.Struts 2的工作流程,从请 ...

  6. Spring MVC知识点整理

    网上Spring MVC相关知识点的介绍已经有很多了,但是大部分文章都是介绍其中的一部分知识点. 本文希望能够向读者做一个基本整体的介绍,首先我们先来了解下Spring MVC的基础接口和组件.   ...

  7. 史上前端面试最全知识点(附答案)---html & js & css

    史上前端面试最全知识点(附答案) 一.html & js & css 1.AMD和CMD是什么?它们的区别有哪些? AMD和CMD是二种模块定义规范.现在都使用模块化编程,AMD,异步 ...

  8. 剑指Offer——知识点储备-J2EE基础

    剑指Offer--知识点储备-J2EE基础 9.2 jdk 1.8的新特性(核心是Lambda 表达式) 参考链接:http://www.bubuko.com/infodetail-690646.ht ...

  9. 10分钟详解Spring全家桶7大知识点

    Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflow等解决方案.有人亲切的称之为 ...

随机推荐

  1. OSPF与ACL 综合应用

    1.企业内网运行OSPF路由协议,区域规划如图所示:2.财务和研发所在的区域不受其他区域链路不稳定性影响:3.R1.R2.R3只允许被IT登录管理:4.YF和CW之间不能互通,但都可以与IT互通:5. ...

  2. 为企业服务器配置RAID0、raid1、 raid10、raid5、raid6、等常见RAID

    RAID卡操作手册先从开机启动时如何进入管理界面开始介绍: 1)当机器开启后,显示器出现阵列卡检测信息时,会提示用户是否要进入管理界面对阵列卡进行操作,此时按下Ctrl + H 即可,如下图 2)按下 ...

  3. 最长上升子序列(LIS) Easy

    A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given ...

  4. [LOJ 6253] Yazid 的新生舞会

    link $solution:$ 不知道为什么别人的代码能写的非常短,难道就是写差分的好处? 这种题肯定是算每个众数的贡献,考虑通过暴力众数求出个数. 现在考虑众数 $x$ ,则在序列 $a$ 中将等 ...

  5. 动态规划(股票交易)---只能进行 k 次的股票交易

    只能进行 k 次的股票交易 188. Best Time to Buy and Sell Stock IV (Hard) 题目描述:   只能进行K次股票交易,求能获得的最大利润 思路分析:   和只 ...

  6. 01-Django-urls

    # Django系统- 环境 - python3.6 - django1.18- 参考资料 - [django中文教程](http://python.usyiyi.cn/)# 环境搭建- anacon ...

  7. JS事件流、事件监听、事件对象、事件委托

    JS事件流: 01.DOM级别和DOM事件 02.JS事件流:页面中接收事件的顺序 事件冒泡阶段-->处于目标阶段-->事件捕获阶段 (事件捕获总发生在事件冒泡前面) 03.捕获:从外向里 ...

  8. java复习(4)异常

    1.Java异常的分类和类结构图 1.Throwable是整个java异常体系的超类,所有的异常类都派生自这个类,包含Error和Exception这两个直接的子类,概括了所有能被当做异常跑出来的东西 ...

  9. nice - 改变执行程序的优先级

    总览 (SYNOPSIS) nice [OPTION]... [COMMAND [ARG]...] 描述 (DESCRIPTION) 以 调整过的 调度优先级 运行 COMMAND. 如果 没给出 C ...

  10. MyBatis中返回List

    一般情况下,我们需要返回一个List 在Dao层定义: List<TbAddress> selectAll(); 那么在对应的mapper文件中,应该如下: <select id=& ...