JavaWeb 拦截器(interceptor)和过滤器(filter)的区别 总结

一、区别

  1. 实现原理
  2. 使用和适用范围
  3. 使用场景
  4. 触发时机
  5. 请求顺序

二、具体展开说明

2.1 实现原理

过滤器Filter :基于函数也就是方法回调来完成拦截和放行的操作。
拦截器(interceptor):拦截器则是通过Java 反射机制(动态代理)来实现。

2.2 使用和适用范围

过滤器Filter :filter 是最早的基于Java 基础的 Servlet 的规范定义的,所以 filter 依赖于tomcat 等基本只用于JavaWeb 项目
拦截器(interceptor):由 spring 提供的单独组件,由 spring 管理与 tomcat 无关所以不依赖 tomcat 可以单独使用。
拦截器不仅用于web 也可以用于 Application.Swing 等。

2.3 使用场景

过滤器Filter :更多的用于请求拦截,对请求做基本加工等其他统一的基本功能性操作,但用于检查权限等也不是不可以。
拦截器(interceptor):更贴合系统本身的业务操作,例如权限、日志、业务系统有效检查,是否可用等等。但也可以用于一般的请求和响应拦截。

2.4 触发时机

过滤器Filter :在请求进入 Servlet 之前开始,在 Servlet 处理完成后结束。
拦截器(interceptor):在请求进入 Servlet 之后,在进入 controller 之前,controller 渲染视图完成后结束。

2.5 请求顺序

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值