Руководство по Servlets. Жизненный цикл.

В данной статье мы рассмотрим жизненный цикл сервлетов в Java.

Жизненный цикл любого сервлета состоит из 4 этапов:

  • Инициализация, которая происходит при вызове метода init()
  • Обработка клиентского запроса после вызова метода service()
  • Уничтожение сервлета с помощью вызова метода destroy()
  • Полное уничтожение сервлета сборщиком мусора Java (Garbage Collector).

Метод init()

Данный метод вызывается только один раз при создании сервлета.

Обычно, создание происходит в момент перехода по ссылке (URL) на страницу, работу которой обеспечивает определённый сервлет. Это может быть изменено – и создание может происходить при запуске сервера.

После создания сервлета, каждый запрос от клиента приводит к созданию нового потока, который работает с методами doGet или doPost – в зависимости от самого запроса.


Метод service()

Данный метод является основным  методом, который и содержит саму логику работы сервлета. Он вызывается для обработки полученного запроса и передачи ответа HTTP клиенту.

При получении запроса, сервер создаёт новый поток, который вызывает метод service. Данный метод проверяет тип запроса (POST, GET и т.д.) и вызывает соответствующий метод (doPost, doGet и т.д.)


Метод destroy()

Данный метод вызывается после того, как сервлет выполнил свои задачи. Используется, например, для таких задач, как запись данных в cookie, закрытие соединения к базе данных (далее – БД) и т.д.

Схематически, жизненный цикл сервлета можно представить следующим образом:

servletLifeCcycle

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

На этом мы заканчиваем изучение жизненного цикла сервлетов.

В следующей статье мы рассмотрим пример простого приложения с использованием сервлетов.