Listener监听器-监听request

对Request的监听分生命周期的监听,和Request上Attribute变化的监听两部分。

  • 编写 RequestListener

    RequestListener 实现接口 ServletRequestListener和ServletRequestAttributeListener 

    requestInitialized()
    当新创建了一个Request的时候触发,只要访问了服务端的资源,就会创建一个Request,无论是jsp,servlet还是html

    requestDestroyed()
    当本次请求结束的时候触发

    attributeAdded
    当有新增属性时触发

    attributeReplaced
    当有替换属性时触发

    attributeRemoved
    当有移除属性时触发
    package listener;
     
    import javax.servlet.ServletRequestAttributeEvent;
    import javax.servlet.ServletRequestAttributeListener;
    import javax.servlet.ServletRequestEvent;
    import javax.servlet.ServletRequestListener;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
     
    public class RequestListener implements ServletRequestListener, ServletRequestAttributeListener {
     
        @Override
        public void requestDestroyed(ServletRequestEvent arg0) {
            System.out.println("销毁了一个Request ");
        }
     
        @Override
        public void requestInitialized(ServletRequestEvent arg0) {
            System.out.println("创建了一个Request ");
        }
     
        @Override
        public void attributeAdded(ServletRequestAttributeEvent e) {
            System.out.println("request 增加属性 ");
            System.out.println("属性是" + e.getName());
            System.out.println("值是" + e.getValue());
        }
     
        @Override
        public void attributeRemoved(ServletRequestAttributeEvent arg0) {
            System.out.println("request 移除属性 ");
             
        }
     
        @Override
        public void attributeReplaced(ServletRequestAttributeEvent arg0) {
            System.out.println("request 替换属性 ");
             
        }
    }
  • 配置web.xml

    <listener>
        <listener-class>listener.RequestListener</listener-class>
    </listener>  
  • testRequest.jsp

    测试页面,先在request中设置test,然后替换,最后移出掉test
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
     
    <%
        request.setAttribute("test", 1);
        request.setAttribute("test", 2);
        request.removeAttribute("test");
    %>
  • 测试

    访问页面
    http://127.0.0.1/testRequest.jsp

    观察测试结果



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值