zoukankan      html  css  js  c++  java
  • javaWEB知识总结——Listener

    1.Listener

    [1]监听器简介

    > ListenerJavaWeb中三大组件之一。ServletFilterListener

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

    监听器:朝阳群众

    监听对象:明星

    监听的事件:干坏事

    调用方法:报警

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

    ServletContext

    HttpSession

    ServletRequest

    [2]监听器分类

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

    - 生命周期监听器,监听三个对象的创建和销毁的事件。(3)

    - 属性监听器,监听三个对象中属性的变化。(3个)

    - session对象监听器,将它session中的属性,以及session的活化和钝化。(2)

    [3]生命周期监听器

    <1ServletContextListener

    - ServletContext生命周期监听器

    - void contextDestroyed(ServletContextEvent sce)

    - 该方法在ServletContext对象销毁前调用

    - void contextInitialized(ServletContextEvent sce)  

    - 该方法在ServletContext对象创建之后调用。

    - ServletContextEvent 对象可以获取到ServletContext对象

    ServletContextEvent.getServletContext();

    <2HttpSessionListener

    - HttpSession生命周期监听器

    - void sessionCreated(HttpSessionEvent se)

    - 该方法在Session创建时调用

    - void sessionDestroyed(HttpSessionEvent se)

    - session销毁时调用

    - HttpSessionEvent

    - 可以获取HttpSession对象

    ServletRequestListener

    - void requestDestroyed(ServletRequestEvent sre)

    - request请求响应时调用

    - void requestInitialized(ServletRequestEvent sre)

    - request请求开始时调用

    - ServletRequestEvent

    可以获取ServletContext对象和ServletRequest

    编写一个监听器的步骤:

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

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

    1  <listener>
    2 
    3   <listener-class>com.neuedu.listener.AListener</listener-class>
    4 
    5   </listener>

    [4]属性监听器

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

    > 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();

    > ServletRequestAttributeListener

    void attributeAdded(ServletRequestAttributeEvent srae)

    void attributeRemoved(ServletRequestAttributeEvent srae)

    void attributeReplaced(ServletRequestAttributeEvent srae)

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

    [5]HttpSessionBindingListener

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

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

    valueBound(HttpSessionBindingEvent event)

    - 当该类的实例,作为属性设置进session域中时调用

    valueUnbound(HttpSessionBindingEvent event)

    - 当该类的实例,从session域中被移除时调用

    [6]HttpSessionActivationListener

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

    > 该接口由JavaBean来实现,同样不需要在web.xml中配置,但是该JavaBean需要实现Serializable接口!

    void sessionDidActivate(HttpSessionEvent se)

    - 当前对象和session一起被活化到内存时调用

    void sessionWillPassivate(HttpSessionEvent se)

    - 当前对象和session一起钝化到硬盘时调用

  • 相关阅读:
    6.3 The Memory Hierarchy
    去掉正在打印对话框
    SQL SERVER格式化字符串位数,不足补零
    WCF学习系列二_使用IIS发布WCF服务
    WCF学习系列一_创建第一个WCF服务
    IrisSkin4控件使用方法
    窗体加载后的设置焦点事件
    SQL 分组后取最小行号记录
    二维数组、齿形数组和游长变元表
    C#数组按值和按引用传递数组区别
  • 原文地址:https://www.cnblogs.com/Mr-zhaoz/p/7425536.html
Copyright © 2011-2022 走看看