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
  • 相关阅读:
    LNMP
    Unable to guess the mime type as no guessers are available 2 9
    django--模型字段引用
    no python application found, check your startup logs for errors
    uWSGI+django+nginx的工作原理流程与部署历程
    进程管理supervisor的简单说明
    Django 部署(Nginx)
    MyBatis学习教程
    Spring教程
    互联网的寒冬该如何度过
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/10061801.html
Copyright © 2011-2022 走看看