Java拦截器和过滤器的区别 - 极悦
首页 课程 师资 教程 报名

Java拦截器和过滤器的区别

  • 2022-10-25 10:35:39
  • 1047次 极悦

一样的东西:

1.拦截器和过滤器体现AOP思想,实现方法的增强,可以拦截请求的方法。

2.拦截器和Filter过滤器可以通过Order Annotation设置执行顺序

区别:

1.Filter属于Servlet Level,Interceptors属于Spring Level

Filter是在javax.servlet包中定义的,依赖于网络容器,所以只能在web项目中使用。

拦截器是在 SpringMVC 中实现的,归根结底,最底层的拦截器是一个 Spring Components ,由 Spring Container 管理。

2.过滤器和拦截器的执行顺序不同:

这是一张显示过滤器和拦截器执行顺序的图片

首先,当请求进入 Servlet 之前,过滤器的 doFilter 方法进行过滤,

进入 Servlet 容器后,执行 Controller 的 Before 方法,拦截器的 preHandle 方法进行拦截,

执行Controller的After方法,渲染视图之前,拦截器的postHandle方法进行拦截,

请求后,执行拦截器 postHandle 方法。

3.基于过滤器的函数回调如何实现,拦截器是基于Java的反射机制实现的。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交