Каталог статей
Технология 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() одного экземпляра сервлета.