Spring DispatcherServlet与过滤器之间的关系

时间:2012-07-05 10:01:59

标签: spring servlets spring-mvc servlet-filters

Spring MVC使用DispatcherServlet将控制路由到适当的Controller。但过滤器在哪里适合流量?如果我指定一个过滤器来执行会话管理或身份验证,是否会在DispatcherServlet之前调用过滤器?

我的困惑来自于它们都指定了URL模式。如果它们都提供相同的url模式会发生什么?

1 个答案:

答案 0 :(得分:2)

这并不是Spring和Spring MVC特有的。通常,在 servlet之前,fitler总是被称为。如果有多个过滤器和一个与给定URL模式匹配的servlet,则首先按<filter-mapping>定义的顺序执行所有过滤器,最后执行servlet。

通过这种方式,您可以动态修改请求,甚至可以完全忽略servlet。