什么是过滤器?拦截器和过滤器有何区别?

过滤器(Filter)

servlet过滤器作用:
1.对不符合要求的请求进行拦截,使之不能到达servlet
2.抽取公共的代码,对共同的业务进行抽离,对请求的数据进行加工
(例如设置编码格式、记录日志信息、鉴别用户是否登录等)
过滤器作用图示

拦截器:

springmvc可以拦截过滤前端的请求,和过滤器的作用一样,但是拦截器只对经过Dispathcher的请求有效
拦截器 过滤器 Aop:抽取公共代码 拦截 过滤 鉴权
事务:只能用aop
springmvc 拦截器的实现

  • 第一种方式
通过实现HandlerInterceptor接口,或继承HandlerInterceptor接口的实现类(如HandlerInterceptorAdapter)来定义。
  • 第二种方式
    通过实现WebRequestInterceptor接口,或继承WebRequestInterceptor接口的实现类来定义。

拦截器与过滤器的区别?

1.拦截器是基于Java反射机制,过滤器是基于函数回调
2.拦截器不依赖于servlet容器,过滤器依赖与servlet容器
3.拦截器只对action请求起作用,过滤器则可以对几乎所有的请求起作用
4.拦截器可以访问action上下文,值栈里的对象。
5.拦截器可以多次被调用,过滤器只能在容器初始化时被调用

过滤器拦截器都是在Web开发中用来对请求进行处理的工具,它们都可以实现对请求进行拦截、修改、处理等操作,但是它们之间有一些区别过滤器是在Servlet容器中进行处理的,可以对所有的请求进行拦截处理。过滤器是基于函数回调的,需要在web.xml中配置过滤器的url-pattern,当请求的URL匹配该url-pattern时,过滤器就会被调用。过滤器可以实现对请求的预处理后处理,如编码转换、防止XSS攻击、权限验证等。 而拦截器则是在Spring框架中进行处理的,主要是针对Controller中方法的调用进行拦截处理。拦截器是基于AOP(面向切面编程)思想实现的,可以实现类似于过滤器的功能,同时还能够更灵活地控制请求的处理。拦截器可以对请求进行前置处理、后置处理、异常处理等。 总结一下,过滤器拦截器都是用来对请求进行处理的工具,但是它们之间的区别如下: 1. 运行环境不同:过滤器在Servlet容器中进行处理,而拦截器在Spring容器中进行处理; 2. 处理对象不同:过滤器可以对所有的请求进行拦截处理,而拦截器主要针对Controller中方法的调用进行拦截处理; 3. 实现方式不同:过滤器是基于函数回调实现的,而拦截器是基于AOP思想实现的。 它们的作用包括但不限于: 1. 过滤非法请求; 2. 统一处理日志记录; 3. 统一处理异常信息; 4. 处理权限验证等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值