我要求在春季2.5中拦截所有请求。我不想使用HandlerInterceptor
来拦截请求,因为它需要使用上下文文件中的每个SimpleUrlHandlerMapping
bean来配置它。是否有其他方法可以在不使用HandlerInterceptor
的情况下拦截所有请求?
答案 0 :(得分:0)
您可以实现过滤器并将其映射到web.xml中的DispatcherServlet。然后你应该能够拦截对Spring MVC的所有请求。
简而言之:
将过滤器添加到web.xml
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>mypackage.MyFilter</filter-class>
</filter>
然后将其映射到DispatcherServlet(servlet-name应该与为Spring Dispatcher servlet定义的相同。
<filter-mapping>
<filter-name>MyFilter</filter-name>
<servlet-name>DispatcherServlet</servlet-name>
</filter-mapping>
如果需要访问过滤器中的Spring ApplicationContext,请使用静态方法
org.springframework.web.context.ContextLoader.getCurrentWebApplicationContext()