• 与请求相关的监听器


    概述

      与请求相关的监听器有三个: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
  • 相关阅读:
    使用VisualStudio进行单元测试之二
    使用VisualStudio进行单元测试之一
    ExtJS监听键盘事件:回车键实现登录功能
    PPTP无法连网
    Android深度探索.
    Android深度探索
    Android驱动开发
    window.open()的具体使用方法
    js控制的几种页面跳转和传值(转载)
    Hatching shader
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/10061801.html
Copyright © 2020-2023  润新知