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大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习