02 ServletRequest相关监听器

ServletRequestListener
用于ServletReuqest对象(request请求对象)的创建和销毁行为。
创建:用户每次发出请求的时候都会创建一个请求对象
销毁:完成整个请求之后请求对象销毁

ServletRequestAttributeListener
用于监听ServletRequest对象的属性增加,修改,删除
增加: setAttribute("name",Object);
修改: setAttribute("name",Object); //把同名的属性进行修改
删除: removeAttribute("name");

  1. xml中配置
    <!-- 注册监听器 -->
    <listener>
        <!-- 监听器程序全名 -->
        <listener-class>com.xxjqr.servlet_study.listener.MyRequestListener </listener-class>
    </listener>
  1. 代码如下
/**
 * ServetRequest的监听器
 *
 */
public class MyRequestListener implements ServletRequestListener,ServletRequestAttributeListener{

    /**
     * 用于监听request对象的创建
     */
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("一个请求对象被创建了");
        
        //得到请求对象相关的信息
        HttpServletRequest request = (HttpServletRequest)sre.getServletRequest();
        //得到客户的ip地址
        String ip = request.getRemoteHost();
        //共享数据到页面
        //HttpSession session = request.getSession(true);
        //session.setAttribute("ip", ip);
    }
    /**
     * 用于监听request对象的销毁
     */
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("一个请求对象被销毁了");
    }
    
    /***************属性相关***************/
    public void attributeAdded(ServletRequestAttributeEvent srae) {
        String name = srae.getName();
        Object value = srae.getValue();
        System.out.println("属性增加:"+name+"="+value);
    }
    public void attributeReplaced(ServletRequestAttributeEvent srae) {
        String name = srae.getName();
        ServletRequest request = srae.getServletRequest();
        Object value = request.getAttribute(name);
        System.out.println("属性修改:"+name+"="+value);
    }
    public void attributeRemoved(ServletRequestAttributeEvent srae) {
        String name = srae.getName();
        Object value = srae.getValue();
        System.out.println("属性删除:"+name+"="+value);
    }
    
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文包括:1、Listener简介2、Servlet监听器3、监听三个域对象创建和销毁的事件监听器4、监听三个域对...
    廖少少阅读 11,397评论 6 28
  • 监听器(listener) 监听器简介 :监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个...
    奋斗的老王阅读 7,346评论 0 53
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,195评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139
  • 今天很高兴,好像已经习惯了这个节奏,即使不让我休息也不觉得累,虽然到晚上脚跟因为走路太疼酸疼之外没有其他不舒服的感...
    yoga丽阅读 1,599评论 3 5