[英]Spring MVC Execution Order: Filter and Interceptor
我正在開發一個 spring MVC 應用程序,它使用一個實現javax.servlet.Filter
的過濾器和一個擴展org.springframework.web.servlet.handler.HandlerInterceptorAdapter的攔截器。
據我所知,Spring MVC的控制流程是這樣的:
DispatcherServlet
。DispatcherServlet
將其發送到Interceptor
並執行覆蓋的preHandle
方法。postHandle
方法也被覆蓋,Spring 就會執行它的代碼。DispatcherServlet
使用視圖解析器並將模型發送到視圖,渲染它。 做一些測試我可以看到我的過濾器總是在preHandle
方法之前執行。 它似乎是DispatcherServlet
之后第一個執行的東西。 沒關系,但我沒有找到這種行為的原因。 有好的解釋的人嗎?
謝謝!
更新:可能性:這是因為過濾器是在web.xml
定義的(如DispatcherServlet
)所以過濾器在DispatcherServlet
之前執行?
這很好,因為Filter's
是 Servlet 規范Filter's
一部分。
Filters
由您的Server(tomcat)
調用。 而攔截器由Spring
調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.