Когда дескриптор развертывания вызова контейнера (web.xml)

Мы знаем, что всякий раз, когда приходит запрос на сервлет, контейнер сервлета сначала проверяет файл web.xml на предмет URL и соответствующих классов сервлета. Это нормально, но путаница наступает после этого. Предположим, я использую свойство загрузки при запуске. Итак, сервлет должен быть готов до того, как поступит первый вызов. В этом случае контейнеру нужен объект Config сервлета, чтобы заставить сервлет работать. Но снова загрузка при запуске и параметр init для сервлета определяется в файле web.xml. Таким образом, когда именно контейнер использует web.xml?(Когда используется свойство load-on-startup, тогда контейнер не может явно ожидать первого вызова, снова контейнер должен прочитать файл web.xml, чтобы узнать, используется ли это свойство с любым сервлетом.)

Будет лучше, если кто-нибудь сможет очистить мою путаницу. Пожалуйста, предоставьте надежную ссылку, если это возможно.

2 ответа

Загрузка и реализация:

Контейнер сервлетов отвечает за загрузку и создание экземпляров сервлетов. Загрузка и создание экземпляров могут происходить при запуске контейнера или откладываться до тех пор, пока контейнер не определит, что сервлет необходим для обслуживания запроса.

Когда двигатель сервлета запущен, необходимые классы сервлета должны находиться в контейнере сервлета. Контейнер сервлета загружает класс сервлета, используя обычные средства загрузки классов Java. Загрузка может осуществляться из локальной файловой системы, удаленной файловой системы или других сетевых служб. И как сервлеты объявлены в web.xml, этот файл загружается и читается контейнером во время запуска контейнера.

Инициализация:

После создания экземпляра объекта сервлета контейнер должен инициализировать сервлет, прежде чем он сможет обрабатывать запросы от клиентов. Контейнер инициализирует экземпляр сервлета, вызывая метод init интерфейса Servlet с уникальным (для каждого объявления сервлета) объектом, реализующим ServletConfig интерфейс.

Ссылка: JSR-000315 JavaTM Servlet 3.0

web.xml читается, как только вы развернете свое приложение на веб-сервере. Ради понимания, вы можете предположить, что контейнер - это не что иное, как ваш веб-сервер. Хотя веб-сервер имеет больше, чем просто веб-контейнер.

Веб-сервер читает web.xmlи загружает контекстную конфигурацию, загружает при запуске сервак и т.д. web.xml это файл, через который вы сообщаете вашему контейнеру / серверу о вашем приложении. Ваше веб-приложение находится внутри веб-сервера, и сервер перехватывает все входящие запросы, решает, в какое приложение запрос должен быть перенаправлен в зависимости от контекста.

Другие вопросы по тегам