zoukankan      html  css  js  c++  java
  • 与请求相关的监听器

    概述

      与请求相关的监听器有三个:ServletRequestListener、ServletRequestAttributeListener与AsyncListener。第三个是在Servlet 3.0中新增的监听器。


    ServletRequestListener

      ServletRequestListener是“生命周期监听器”,如果想要在HttpServletRequest对象生成或结束时做些相对应的操作,则可以实现ServletRequestListener。在ServletRequest对象初始化后或销毁前,会调用requestInitialized()与requestDestroyed()方法,并传入ServletRequestEvent,通过它可以取得ServletRequest,以针对请求对象做出相对应的初始化或结束处理动作。

    声明

    方法一:在实现ServletRequestListener的类上标注@WebListener

    @WebListener()
    public class SomeRequestListener implements ServletRequestListener {
        @Override
        public void requestDestroyed(ServletRequestEvent sre) {
            // ...
        }
    
        @Override
        public void requestInitialized(ServletRequestEvent sre) {
            //...
        }
    }
    Java Code

    方法二:在web.xml中声明

    <web-app...>
        ...
        <listener>
            <listener-class>cc.openhome.SomeRequestListener</listener-class>
        </listener>
       ...
    <web-app>
    xml Code 

    ServletRequestAttributeListener

      ServletRequestAttributeListener是“属性改变监听器”,在请求对象中加入属性、移除属性或替换属性时,相对应的attributeAdded()、attributeRemoved()与attributeReplaced()方法就会被调用,并分别传入ServletRequestAttributeEvent。ServletRequestAttributeEvent有个getName()方法,可以取得属性设置或移除时指定的名称,而getValue()则可以取得属性设置或移除时的对象。

    声明

    方法一:在实现ServletRequestAttributeListener的类上标注@WebListener

    @WebListener()
    public class SomeRequestAttrListener
                   implements ServletRequestAttributeListener {
        @Override
        public void attributeAdded(ServletRequestAttributeEvent srae) {
            //...
        }
    
        @Override
        public void attributeRemoved(ServletRequestAttributeEvent srae) {
            //...
        }
    
        @Override
        public void attributeReplaced(ServletRequestAttributeEvent srae) {
            //...
        }
    }
    Java Code

    方法二:在web.xml中声明

    <web-app...>
        ...
        <listener>
            <listener-class>cc.openhome.SomeRequestAttrListener</listener-class>
        </listener>
       ...
    <web-app>
    xml Code
  • 相关阅读:
    压力测试衡量CPU的三个指标:CPU Utilization、Load Average和Context Switch Rate .
    [转](多实例)mysql-mmm集群
    mysql的MMM高可用方案
    压力测试工具
    memcached 的简介、安装、命令
    memcached 最大连接数及其内存大小的设置
    mysql优化
    mysql
    30道Linux面试题
    门户网站架构Nginx+Apache+MySQL+PHP+Memcached+Squid
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/10061801.html
Copyright © 2011-2022 走看看