Контейнер Servlet контролирует полный жизненный цикл сервлета и основан на javax.servlet. Пользовательский интерфейс сервлета для анализа и управления объектом сервлета. Важно знать, как контейнер сервлета обрабатывает жизненный цикл объекта сервлета, прежде чем пытаться создать объект сервлета с помощью сервера.

Жизненный цикл сервлета состоит из четырех основных этапов:

1. Загрузка сервлета:

Начальная фаза жизненного цикла сервлета влечет за собой и поддерживает загрузку контейнера сервлета и инициализацию сервлета. Сервлет может быть загружен веб-контейнером или контейнером сервлетов одним из двух способов:

Установка конфигурации сервлета на неотрицательное число инициирует контекст.

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

На этом этапе контейнер сервлетов выполняет две функции:

Загрузка:

Класс Servlet загружен.

Экземпляр:

Запускает новый процесс сервлета. Контейнер использует функцию без аргументов сервлета Object() { [собственный код] } для создания экземпляра нового сервлета.

2. Инициализация сервлета:

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

После успешного вызова Servlet.init(ServletConfig) контейнер сервлетов вызывает эту функцию только один раз. Ресурсы, такие как источник данных JDBC, инициализируются в этой функции.

Сервлет теперь уведомляет контейнер сервлетов о любых проблемах с инициализацией, выдавая либо ServletException, либо UnavailableException.

Курс разработки Java для Android расширит ваши знания и навыки.

3. Обработка запроса:

По завершении запуска экземпляр сервлета готов начать отвечать на запросы клиентов. Когда найден экземпляр сервлета для обработки запроса, контейнер сервлета делает следующее:

В результате создаются ServletRequest и ServletResponse. HttpServletRequest и HttpServletResponse являются подклассами ServletRequest и ServletResponse, которые создаются веб-контейнером, если запрос является HTTP-запросом.

Функция Servlet.service(ServletRequest, ServletResponse) вызывается с использованием только что созданных объектов запроса и ответа.

Функция service() может генерировать ServletException, UnavailableException или IOException при обработке запроса.

4. Уничтожение сервлета:

Вот что происходит, когда контейнер сервлета решает убить сервлет:

Это дает сервисной функции экземпляра сервлета время для завершения обработки запросов и освобождения всех потоков, работающих внутри него.

Контейнер сервлета вызывает функцию destruct() экземпляра сервлета после того, как все активные потоки завершили свои задачи.

Контейнер сервлета освобождает все ссылки на этот экземпляр сервлета после вызова функции destruct(), делая его доступным для сбора мусора.

Java, полный курс разработчика Java улучшит вашу карьеру.

МЕТОДЫ ЖИЗНЕННОГО ЦИКЛА ДЛЯ СЕРЛЕТОВ

Сервлет может пройти через три различных процесса жизненного цикла:

· в этом()

· услуга()

· разрушать()

Рассмотрим подробнее каждый из этих подходов:

1. метод init():

Контейнер сервлетов вызовет функцию Servlet.init(), как только сервлет будет успешно создан и готов к работе.

//метод инициализации()

открытый класс MyServlet реализует сервлет {

public void init (конфигурация ServletConfig) выдает ServletException {

// код инициализации

}

//остальный код

}

2. метод service():

После получения запросов от клиентов сервлет уведомляется через функцию service().

Информация, запрошенная клиентом, собирается с использованием объекта ServletRequest в этой процедуре.

Выходное содержимое создается с помощью объекта ServletResponse в этой процедуре реализации.

// метод сервис()

открытый класс MyServlet реализует сервлет {

служба public void (разрешение ServletRequest, разрешение ServletResponse)

бросает ServletException, IOException {

// код обработки запроса

}

// остальная часть кода

}

Сервлеты имеют единственный метод с именем destroy(), который выполняется один раз в конце их жизненного цикла, чтобы обозначить конец экземпляра сервлета.

//метод уничтожения()

публичное уничтожение пустоты ()

После вызова destroy() контейнер сервлета освободит экземпляр сервлета.

НИЖЕ ПРЕДСТАВЛЕН ПРИМЕР ПРОГРАММЫ ДЛЯ ИЛЛЮСТРАЦИИ СЕРЛЕТА В JAVA

// Java-программа для демонстрации примера сервлета

// Импорт необходимых библиотек Java

импортировать java.io.*;

импортировать javax.servlet.*;

импортировать javax.servlet.http.*;

// Расширить класс HttpServlet

открытый класс AdvanceJavaConcepts расширяет HttpServlet

{

приватный строковый вывод;

// Инициализация сервлета

public void init() выдает ServletException

{

output = «Расширенные концепции Java»;

}

// Запрос и печать вывода

public void doGet (запрос HttpServletRequest,

HttpServletResponse соответственно)

выдает ServletException, IOException

{

resp.setContentType («текст/html»);

PrintWriter out = resp.getWriter();

out.println (выход);

}

общественная пустота уничтожить ()

{

System.out.println("Прошло");

}

}

Полный курс разработчика Android и Java откроет лучшие карьерные перспективы