gpt4 book ai didi

java - Spring MVC 执行顺序 : Filter and Interceptor

转载 作者:IT老高 更新时间:2023-10-28 13:49:02 30 4
gpt4 key购买 nike

我正在开发一个 Spring MVC 应用程序,它使用一个过滤器来实现 javax.servlet.Filter和一个扩展 org.springframework.web.servlet.handler.HandlerInterceptorAdapter 的拦截器.

据我所知,Spring MVC的控制流程是这样的:

  1. 请求到达 DispatcherServlet
  2. DispatcherServlet 将其发送到 Interceptor 并执行覆盖的 preHandle 方法。
  3. 请求到达匹配的 Controller 。
  4. 处理完请求后,如果拦截器的postHandle方法也被覆盖,Spring会执行它的代码。
  5. DispatcherServlet 使用 View 解析器并将模型发送到 View 并进行渲染。

做一些测试我可以看到我的过滤器总是在 preHandle 方法之前执行。它似乎是 DispatcherServlet 之后第一个执行的东西。没关系,但我找不到这种行为的原因。有人有很好的解释吗?

谢谢!

更新:可能性:这是因为过滤器是在 web.xml 中定义的(如 DispatcherServlet)所以过滤器在 DispatcherServlet 之前执行?

最佳答案

完全没问题Filter's 是 Servlet 规范的一部分。

Filters 由您的 Server(tomcat) 调用。而拦截器由 Spring 调用。

关于java - Spring MVC 执行顺序 : Filter and Interceptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26908910/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com