Могу ли я написать модуль / фильтр, который будет запущен до запуска веб-приложения в Tomcat? - PullRequest
0 голосов
/ 15 апреля 2010

Могу ли я написать модуль / фильтр, который будет помещен в конвейер обработки в Tomcat, ДО того, как веб-приложение будет запущено?

Что-то, что я мог бы включить / выключить для каждого веб-приложения, которое обрабатывает tomcat.

это возможно?

Таким образом, в основном это будет фильтр многократного использования, который подключается к веб-конвейеру, который может изменить поведение запросов или выполнить / изменить запросы. Одним из примеров может быть регистрация всех IP-адресов или перенаправление на основе URL-адреса, блокировка запроса и т. Д.

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Если вы используете Servlet 3.0, вы можете. То, что вы делаете, это реализует ServletContextListener или ServletContainerInitializer. Код ниже показывает с ServletContextListener

@WebListener("auto config listeners")
public class MyListenerConfigurator implements ServletContextListener {
   public void contextInitialized(ServletContextEvent scEvt) {
      ServletContext ctx = scEvt.getServletContext();
      FilterRegistration.Dynamic reg = ctx.addFilter("myFilter", "my.listener.class.MyListener");
      ...
   }

См. Документы EE6 здесь . Возможно, единственным недостатком является то, что вы можете добавить, но вы не можете удалить. И вы можете только тогда, когда приложение запускается.

Примечание: код не проверен

0 голосов
/ 15 апреля 2010

Рассматривали ли вы ServletContextListener в web.xml?

...