Сервлеты, структура и организация. Методы жизненного цикла

Сервлеты – программы, работающие на стороне сервера.

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

Жизненный цикл сервлета состоит из следующих шагов: 1 В случае отсутствия сервлета в контейнере.

1.1 Класс сервлета загружается контейнером.

1.2 Контейнер создает экземпляр класса сервлета.

1.3 Контейнер вызывает метод init()- Этот метод инициализирует сервлет и вызывается в первую очередь, до того, как сервлет сможет обслуживать запросы. За весь жизненный цикл метод init() вызывается только однажды.

2 Обслуживание клиентского запроса. Каждый запрос обрабатывается в своем отдельном потоке. Контейнер вызывает метод service() для каждого запроса. Этот метод определяет тип пришедшего запроса и распределяет его в соответствующий этому типу метод для обработки запроса. Разработчик сервлета должен предоставить реализацию для этих методов. Если поступил запрос, метод для которого не реализован, вызывается метод родительского класса и обычно завершается возвращением ошибки инициатору запроса

3. В случае если контейнеру необходимо удалить сервлет, он вызывает метод destroy(), который снимает сервлет из эксплуатации. Подобно методу init(), этот метод тоже вызывается единожды за весь цикл сервлета.

Методы: Метод init(). При первой загрузке сервлета вызывается метод init()- Это дает возможность сервлету выполнить любую работу по установке, например, открытие файлов или установку соединений с их серверами. Если сервлет установлен на сервере постоянно, он загружается при запуске сервера. В противном случае сервер активизирует сервлет при получении первого запроса от клиента на выполнение услуги, обеспечиваемой этим сервлетом. Метод init() принимает один аргумент — ссылку на объект ServletConfig, который содержит аргументы для инициализации сервлета. Этот объект имеет метод getServletContext(), возвращающий объект Servler-Context, который содержит информацию об окружении сервлета.

Метод service(). Яв ляется сердцем сервлета Каждый запрос от клиента приводит к одному вызову метода service()- Этот метод читает запрос и формирует ответное сообщение при помощи своих двух аргументов ServletRequest и ServletResponse - Объект ServletRequest содержит данные от клиента, а Объект ServletResponse содержит ответ сервлета клиенту.

Метод destroy(). Вы зывается для освобождения всех ресурсов (например, открытые файлы и соединения с базой данных) перед выгрузкой сервлета. Этот метод может быть пустым, если нет необходимости выполнения каких-либо завершающих операций. Перед вызовом метода destroy() сервер ждет либо завершения всех обслуживающих операций, либо истечения определенного времени. Это означает, что метод destroy() может быть вызван во время выполнения какого-либо продолжительного метода service()-

Метод getServletConng() возвращает ссылку на объект, который реализует интерфейс ServletConfig. Данный объект предоставляет доступ к информации о конфигурации сервлета, т.е. доступ к параметрам инициализации сервлета и объекту контекста сервлета Servlet Context, который дает доступ к сервлету и его окружению.

Метод getServletinfo() определяется программистом, создающим сервлет, для возврата строки, содержащую информацию о сервлете, например: автор и версия сервлета.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: