Knowledge Transfer

Ethickfox kb page with all notes


Project maintained by ethickfox Hosted on GitHub Pages — Theme by mattgraham

Класс для взаимодействия и обработки внешних запросов. Является интерфейсом Java, реализация которого расширяет функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ

Реализация

Сервлеты можно реализовать наследуясь от класса Servlet и реализуя следующие методы:

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

  1. init - после создания сервлета
  2. service - обрабатывает приходящий запрос и выбирает, что использовать, doGet…
  3. destroy - если к объекту долгое время не обращаются, то он уничтожается

ServletConfig

Объект, используемый контейнером сервлетов для передачи в сервлет информации при его инициализации

ServletContext

Объект, который создается контейнером сервлетов для предоставления конфигурации и начальных параметров всему приложению

Контейнер сервлетов

Сервер, который обеспечивает поддержку сервлетов и следит за их жизненным циклом Обеспечивает обмен данными между сервлетом и клиентами, берёт на себя выполнение таких функций, как создание программной среды для функционирующего сервлета, идентификацию и авторизацию клиентов, организацию сессии для каждого из них. Цель контейнера сервлетов — поддержка сервлетов и обеспечение их жизненного цикла.

Tomcat

Контейнер сервлетов с открытым исходным кодом, разрабатываемый Apache Software Foundation. Реализует спецификацию сервлетов, спецификацию JavaServer Pages и JavaServer Faces. Написан на языке Java. Tomcat позволяет запускать веб-приложения и содержит ряд программ для само конфигурирования.

Компоненты:

  1. Catalina

Благодаря этому компоненту у разработчиков появляется возможность разворачивать свои программы в контейнере. Catalina реализует спецификацию Servlet API — основную веб-технологию в web-программировании на Java. Фактически Catalina — это контейнер сервлетов внутри Tomcat (подробнее рассмотрим это понятие ниже).

  1. Jasper

Благодаря этому компоненту программист использует технологию JSP. Это как HTML-файлы, только в них встроен Java-код, который может исполняться в момент отправки страницы пользователю. Это позволяет динамически встраивать в страницу любые данные. Jasper превращает Java код в HTML, а также отслеживает изменения и автоматически обновляет их.

  1. Coyote

Это важный компонент, который прослушивает HTTP-запросы от клиента на определенном порту, предоставляет эти данные для обработки в приложении, а также возвращает пользователям ответы. То есть Coyote реализует функционал HTTP-сервера.

jsp  - шаблонизатор, который обрабатывается jsp engine и отдается пользователю html страница

Сервлетные фильтры

Перехватывают входящие и исходящие запросы,

Request dispatcher

Интерфейс используемый для взаимодействия между сервлетами

forward - передача запроса другому ресурсу на сервере

include - включение контента дополнительного ресурса в ответ

HttpSession

Cессия помогает сохранить информацию на время сеанса