2012-01-04 2 views
0

У меня есть требование перехватить весь запрос весной 2.5. Я не хочу использовать HandlerInterceptor для перехвата запроса, потому что он требует его настройки с каждым компонентом SimpleUrlHandlerMapping в файлах контекста. Есть ли другой способ перехватить весь запрос без использования HandlerInterceptor?Как перехватить все запросы для всего контроллера без HandlerInterceptor весной?

ответ

0

Вы можете реализовать фильтр и сопоставить его с DispatcherServlet в web.xml. Затем вы сможете перехватить все запросы, сделанные в Spring MVC.

Короче:

  1. Создать реализацию javax.servlet.Filter
  2. Добавить фильтр в web.xml

    <filter> 
    <filter-name>MyFilter</filter-name> 
    <filter-class>mypackage.MyFilter</filter-class> 
    </filter> 
    

    , а затем сопоставить ее с DispatcherServlet (servlet- имя должно быть таким же, как определено для сервлета Spring Dispatcher.

    <filter-mapping> 
        <filter-name>MyFilter</filter-name> 
        <servlet-name>DispatcherServlet</servlet-name> 
    </filter-mapping> 
    

Если вам нужен доступ к пружине ApplicationContext в фильтре, используйте статический метод

org.springframework.web.context.ContextLoader.getCurrentWebApplicationContext() 
+0

Thanx за помощь –

Смежные вопросы