2012-03-22 5 views
0

У меня есть веб-приложение, с помощью пружины, в которой у меня есть сервлет, locads контекст в методе инициализации:Можно ли инициализировать фильтр после сервлета?

private ContextLoader contextLoader; 

public void init() throws ServletException { 
    contextLoader = new ContextLoader(); 
    contextLoader.initWebApplicationContext(getServletContext()); 
} 

Кроме того, у меня есть сервлет, в котором я делаю следующее:

public void init(FilterConfig config) throws ServletException { 
    WebApplicationContext context = 
     WebApplicationContextUtils.getWebApplicationContext(config.getServletContext()); 
    //here I'm using the context 
} 

Проблема: метод init() фильтра вызывается до инициализации сервлета, поэтому контекст, который я получаю в фильтре, равен нулю. В web.xml мой сервлет настроен с загрузкой-на-запуск = 1.

Можно ли инициализировать мой фильтр после инициализации сервлета, чтобы я мог использовать WebApplicationContext в фильтре?

Спасибо!

ответ

1

Попробуйте это:

  1. Не настроить фильтр в web.xml
  2. В сервлет, получить ServletContext.
  3. Вызовите ServletContext.addFilter(), чтобы добавить фильтр.
Смежные вопросы