Жизненный цикл сервлета

Жизненный цикл сервлета управляется контейнером сервлета. Жизненный цикл можно свести к 5 этапам:
  1. Загрузить класс сервлета
  2. Создать экземпляр сервлета
  3. Метод вызова init()
  4. Вызываем метод service()
  5. Вызываем метод destroy()
Шаги 1, 2 и 3 выполняются только один раз, когда сервлет загружен. По умолчанию сервлет не загружается до тех пор, пока не будет получен первый запрос. Вы можете заставить контейнер сервлетов загружать serlvet во время его выполнения.
Шаг 4 выполняется несколько раз каждый раз  Запрос  HTTP.
Шаг 5 выполняется, когда контейнер сервлета уничтожает сервлет.

Это алгоритм, представляющий жизненный цикл сервлета:

жизненный цикл сервлета

Шаги подробно описаны ниже:

Загрузите класс сервлета

Во-первых, чтобы сервлет был вызван, Контейнер сервлета должен загрузить класс Servlet. Это делается так же, как и любой другой class.

Create Servlet instance

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

Вызов init()

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

Метод init() выглядит следующим образом:

public void init() throws ServletException {
// Инициализация...
}

Call service()

Для каждого полученного запроса сервер создает новый поток и выполняет methodservice(). Метод service() проверяет тип HTTP-запроса (GET, POST, PUT, DELETE и т.д.) и вызывает соответствующие методы doGet, doPost, doPut, doDelete и т.д. До тех пор, пока сервлет остается активным, метод service() может быть вызван повторно. Таким образом, этот шаг может быть самым длинным шагом в жизненном цикле сервлета, так как он выполняется несколько раз.

Вот объявление этого метода:

public void service(ServletRequest request, 
ServletResponse response)
выбрасывает ServletException, IOException{
}
Методы doGet() и doPost() часто используются каждый раз, когда они поступают. просьба. Вот утверждение  обоих методов.

Метод doGet()

Запрос GET создается в URL-адресе или в HTML-форме, которая не имеет определенного метода и должна быть обработана doGet().

public void doGet(HttpServletRequest request,
HttpServletResponse response)
выбрасывает ServletException, IOException {
// code
}
Метод doPost()
La  запрос  POST создается в HTML-форме и должен быть обработан методом doPost().

public void doPost(HttpServletRequest request,
HttpServletResponse response)
выбрасывает ServletException, IOException {
// Код сервлета
}

Call destroy()

метод < span style="font-family: Courier New, Courier, minivan;" >destroy() вызывается только один раз в конце жизненного цикла сервлета. Этот метод позволяет закрывать соединение, останавливать потоки, сохранять списки cookie.
После destory(), объект сервлета уничтожается. Метод destory() выглядит следующим образом:

public void destroy() {
// Код финализации...
}