春季MVC执行顺序:滤波器和拦截器
2022-09-03 02:00:51
我正在开发一个弹簧MVC应用程序,它使用实现javax.servlet.Filter
的过滤器和一个扩展or org.springframework.web.servlet.handler.HandlerInterceptorAdapter。
据我所知,Spring MVC的控制流程是这样的:
- 请求到达 。
DispatcherServlet
-
DispatcherServlet
将其发送到 并执行重写的方法。Interceptor
preHandle
- 请求到达匹配的控制器。
- 在处理完请求后,如果拦截器的方法也被覆盖,Spring将执行其代码。
postHandle
-
DispatcherServlet
使用视图解析程序并将模型发送到视图,并对其进行呈现。
做一些测试,我可以看到我的过滤器总是在方法之前执行。这似乎是之后第一个执行的事情。没关系,但我没有找到这种行为的原因。有人有很好的解释吗?preHandle
DispatcherServlet
谢谢!
更新:可能性:这是因为过滤器是在(如)中定义的,所以过滤器是在?web.xml
DispatcherServlet
DispatcherServlet