2012-07-05 108 views
0

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

我的困惑来自它们都指定了URL模式的事实。如果他们都提供相同的网址格式,会发生什么?

回答

2

这并不是特定于Spring和Spring MVC。一般来说,在 servlets之前总是叫做。当你有几个过滤器和一个servlet与给定的URL模式相匹配时,所有的过滤器首先按照<filter-mapping>定义的顺序执行,并且最后执行servlet。

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