[Javaweb] Принцип работы и жизненный цикл сервлета


Технология Java Servlet, называемая технологией Servlet, является базовой технологией разработки веб-приложений на Java.

1. Ключевые слова

  • Сервлет
    Сервлет — это тип спецификации JavaEE, предназначенный главным образом для расширения функциональности Java как веб-службы. Чтобы облегчить третьим сторонам соблюдение этой спецификации, Sun (теперь Oracle) предоставляет ряд связанных интерфейсов, а именно Servlet API.
  • Приложение сервлета — это
    программа Java, которая прямо или косвенно реализует интерфейс сервлета и должна работать в контейнере сервлетов. В основном она используется для создания динамических веб-страниц. Приложения сервлетов не могут работать независимо и должны быть развернуты в контейнере сервлетов.
  • Контейнер сервлетов.
    Контейнер сервлетов (механизм сервлетов) — это часть веб-сервера или сервера приложений, которая используется для предоставления сетевых служб поверх отправленных запросов и ответов, декодирования запросов на основе MIME, форматирования ответов на основе MIME, т. е. контейнера сервлетов. используется для получения запроса клиента, обработки протокола, запроса содержимого и т. д., инициализации экземпляра сервлета (требуется только первая инициализация) и вызова соответствующего метода приложения сервлета, а затем приложение сервлета возвращает результат обработки, а затем возвращает его пользовательскому клиенту через контейнер сервлетов.
  • Контейнер Tomcat Контейнер
    Tomcat, также называемый сервером приложений, также называется контейнером сервлетов. Фактически, по сути, контейнер Tomcat выполняет функцию контейнера сервлетов и представляет собой реализацию контейнера сервлетов с открытым исходным кодом, но это не просто контейнер сервлетов.

Вставьте сюда описание изображения

Соответствующее содержание ключевых слов можно найти у блоггера CSDN «姠濢臇者», щелкните, чтобы просмотреть исходный текст.


2. Принцип работы

  • Интерфейс сервлета определяет контракт между сервлетом и контейнером сервлетов: контейнер сервлетов загружает класс сервлета в память, генерирует экземпляры сервлета и вызывает определенные методы [советы:
    в приложении может быть только один экземпляр каждого типа сервлета]

  • Пользователь делает запрос, и контейнер сервлета вызывает метод Service() сервлета, передавая объект ServletRequest и объект ServletResponse.
    [ подсказки : объект ServletRequest и объект ServletResponse инкапсулированы контейнером сервлета (например, TomCat), и программисты могут использовать эти два объекта напрямую.】

  • ServletRequest инкапсулирует текущий Http-запрос. ServletResponse представляет Http-ответ текущего пользователя. Программистам нужно только напрямую управлять объектом ServletResponse, чтобы легко отправить ответ обратно пользователю.

  • Для каждого приложения контейнер сервлета создает объект ServletContext, который инкапсулирует детали среды контекста (приложения) [советы: для каждого приложения существует только один
    ServletContext , и для каждого объекта сервлета, инкапсулирующего конфигурацию сервлета, существует только один ServletContext .Объект ServletConfig]


3. Жизненный цикл

Сервлет является синглтоном

Жизненный цикл сервлета можно определить как весь процесс от создания до уничтожения.

  • Создание экземпляра — создание экземпляра сервлета.
  • Инициализация — init()
    вызывается только один раз при первом создании сервлета и больше не будет вызываться при каждом последующем запросе пользователя.
  • Обработка запросов — service()
    — основной метод для выполнения реальных задач. Контейнер сервлетов (т. е. веб-сервер) вызывает метод service() для обработки запросов от клиента (браузера) и записывает отформатированный ответ обратно клиенту.
  • Завершение службы – метод Destroy()
    вызывается только один раз. Вызывается в конце жизненного цикла сервлета и
    может привести к тому, что сервлет закроет соединение с базой данных, остановит фоновый поток, запишет список файлов cookie или счетчик кликов на диск и выполнит другие действия. аналогичные действия по очистке. После вызова объект сервлета помечается для сборки мусора.
  • Сбор мусора GC (может рассматриваться как часть прекращения обслуживания)

Как описание изображения:
Вставьте сюда описание изображения

Конкретный процесс:
Вставьте сюда описание изображения


4. Схема архитектуры

Первый HTTP-запрос, достигающий сервера, делегируется контейнеру сервлетов.

Контейнер сервлетов загружает сервлет перед вызовом метода service().

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

Вставьте сюда описание изображения

Supongo que te gusta

Origin blog.csdn.net/m0_50609545/article/details/120295027
Recomendado
Clasificación