Java中三大器之拦截器与过滤器与监听器

本文介绍了Java中的拦截器、过滤器和监听器。拦截器基于责任链和AOP实现,主要用于拦截action请求;过滤器是Servlet的一部分,可拦截所有请求,通过函数回调增强;监听器则是由事件触发的一系列操作。文章通过实例详细讲解了三者的区别、工作原理及应用。
摘要由CSDN通过智能技术生成

拦截器:拦截的是action的请求,拦截不了不进action的请求,这与他的底层实现有关系,底层是通过责任链和AOP来实现的,也就是说是通过动态代理来实现的

先手动写一个拦截器代码(责任链和AOP,spring对这部分底层进行了包装,工作中我们直接用spring来写拦截器就行)

  • 先定义一个拦截器抽象类
    在这里插入图片描述

  • 自定义一个打印目标方法的拦截器
    在这里插入图片描述

  • 定义一个统计接口的调用时长的拦截器
    在这里插入图片描述

  • 定义统计一个方法调用次数,调用成功次数,调用失败次数的拦截器
    在这里插入图片描述
    在这里插入图片描述

  • 定义一个拦截器链,所以的拦截器都保存在一个链表里,然后一个个的进行调用(因为定义了多个拦截器,所以希望一个个的执行拦截器,那么就是通过拦截器链也就是把所有的蓝机器保存在同一个链表里,告诉被拦截对象,有多少拦截器)
    在这里插入图片描述
    在这里插入图片描述

  • 使用AOP来实现拦截,我这里用的是环绕通知,也就是通过动态代理重写action方法中的内容
    在这里插入图片描述
    在这里插入图片描述

  • 应用
    在这里插入图片描述

  • 补充:上面代码中我没有给出目标方法中所需要的参数定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值