<!-- 以下配置将拦截所有的URL请求 -->
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>
<!-- 以下配置将拦截特有的URL请求 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/secure/*"/>
<bean class="org.example.SecurityInterceptor" />
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/admin/*.do"/>
<bean class="org.example.admin.ControlInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
Web请求被DispatcherServlet截获后,会调用DispatcherServlet的doDispatcher方法。
protected void initStrategies(ApplicationContext context) {
initMultipartResolver(context);
initLocaleResolver(context);
initThemeResolver(context);
initHandlerMappings(context);
initHandlerAdapters(context);
initHandlerExceptionResolvers(context);
initRequestToViewNameTranslator(context);
initViewResolvers(context);
initFlashMapManager(context);
}
DispatcherServlet的默认配置在DispatcherServlet.properties(和DispatcherServlet类在一个包下)
spring3.2
处理器映射 RequestMappingHandlerMapping
处理器适配器 RequestMappingHandlerAdapter
HandlerMapping中调用拦截器的拦截方法
Spring MVC 提供了两种方式实现拦截器,一种是实现HandlerInterceptor接口;另外一种是继承HandlerInterceptorAdapter类