Servlet.init () и Filter.init () называют последовательность

В котором порядке Servlet.init () и Filter.init () методы, названные в веб-приложении Java? Какой называют первым? Являются все Servlet.init () методами, названными прежде, чем какой-либо метод Filter.doFilter?

31
задан martsraits 25 May 2010 в 16:10
поделиться

2 ответа

Фильтры всегда инициализируются во время запуска webapp в том порядке, в каком они определены в web.xml .

Сервлеты по умолчанию инициализируются во время первого HTTP-запроса только по их шаблону URL. Но вы также можете настроить их для инициализации во время запуска веб-приложения, используя записи , в которых вы можете указать их приоритет. Затем они будут загружены в порядке приоритета.
Например.

<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>mypackage.MyServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

Если существует несколько сервлетов с таким же порядком приоритета, то порядок загрузки для этих сервлетов не указан и может быть произвольным. Однако сервлеты в любом случае инициализируются после инициализации фильтров, но до вызова фильтров.

28
ответ дан 27 November 2019 в 22:34
поделиться
  1. Для всех фильтров: Filter.init ()
  2. Для всех сервлетов с '' в web.xml : Servlet.init ()
  3. Для всех применимых фильтров для запроса: Filter.doFilter ()
  4. Если применимый сервлет еще не инициализирован: Servlet.init ()
  5. Для применимого сервлета: Servlet.service ( )
8
ответ дан 27 November 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: