В котором порядке Servlet.init () и Filter.init () методы, названные в веб-приложении Java? Какой называют первым? Являются все Servlet.init () методами, названными прежде, чем какой-либо метод Filter.doFilter?
Фильтры всегда инициализируются во время запуска 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>
Если существует несколько сервлетов с таким же порядком приоритета, то порядок загрузки для этих сервлетов не указан и может быть произвольным. Однако сервлеты в любом случае инициализируются после инициализации фильтров, но до вызова фильтров.
Filter.init ()
web.xml
: Servlet.init ()
Filter.doFilter ()
Servlet.init ()
Servlet.service ( )