zoukankan      html  css  js  c++  java
  • 监听器

    1.Servlet监听器

      servlet中定义的一种特殊类,用于监听web应用中的ServletContext,HttpSession,ServletRequest等域对象的创建与销毁事件,以及监听这些域对象的属性发生修改的事件。

    二:对象建立销毁监听器

    2.ServletContextListener

      监听ServletContext对象被创建或者销毁的servlret监听器

      实现:

        创建一个实现ServletContextListener的类,并且实现其中的两个方法。

        在web.xml中配置Lister:

          <listener>

             <listener-class>.........</>

          </>

      是最最常用的Listener,可以在当前WEB应用被加载时对当前web应用的相关资源进行初始化操作:连接数据池,创建spring ioc,读取当前web应用的初始化参数

      API:

        contextInitialized(ServletContextEvent sce)

        contextDestoryed(ServletContextEvent sce)

      ServletContextEvent:

        里面只有getServletContext方法。

    3.ServletRequestListener,HttpSessionListener

      与上面的类似。

    4.生命周期

      request:是一个请求,当一个响应返回时,被销毁。当发一个请求时创建。

        请求转发只是一个request。

        重定向是两个request。

      Session:

        第一访问WEB应用一个JSP或Servlet时,且该JSP或者Servlet中还需要创建session对象,此时服务器会创建一个session对象。

        销毁:过期,调用invalidate方法,当前web应用被卸载,关闭浏览器不意味着这session销毁。

      application:

        贯穿当前web应用的生命周期。

    三:域对象中属性的变更的事件监听器

    1.接口

      ServletContextAttributeListener

      HttpSessionAttributeListener

      ServletRequestAttributeListener

    2.在web.xml中配置

      <listener>

        <listener-class>......</>

      </>

    3.监听事件

      添加属性

      替换属性

      移除属性

    4.以ServletContextAttributeEvent API 说明

      getName:获取属性的名字

      getValue:获取属性的值

    四:sessioin绑定的事件监听器

    1.介绍

      servlet规范中定义了两个特殊的监听器接口来帮助JavaBean对象了解自己在session域中的这些状态。

      HttpSessionBindingListener,HttpSessionActivationListener,实现这两个接口的类不需要web.xml中注册。

    2.HttpSessionBindingListener接口

      可以感知被绑定到session中和从session中删除的事件

      API:

        valueBand(HttpSessionBingEvent)

        valueUnBand(HttpSessionBingEvent)

    3.HttpSessionActivationListener接口

      监听实现了该接口和Serializable接口的java类对象随session钝化和活化事件

      活化:从磁盘中读取session对象

      钝化:向磁盘中写入session对象

      不需要在web.xml中配置。

      API:

        sessionWillPassivate(HttpSessionEvent):在钝化前被调用

        sessionDidActivate(HttpSessionEvent):在活化后被调用

       HttpSessionEvent:

        里面有getSession()方法。

      

  • 相关阅读:
    spring execution表达式用法
    spring2.0中使用Aspect方式进行AOP如何得到method对象
    mybatis if标签判断字符串相等
    Date和Timestamp区别
    正向代理与反向代理[转载]
    oracle中的对象创建及删除语句【原创】
    使用IDEA打war包并导出war包详细步骤
    Java面试题
    电脑上怎么登录几个微信(微信多开)
    批处理快速合并多分Excel文件并将指定列的数据去重复
  • 原文地址:https://www.cnblogs.com/juncaoit/p/7627246.html
Copyright © 2011-2022 走看看