Архитектура пакета Servlet

Пакет javax.servlet предоставляет интерфейсы и классы для написания сервлетов. Ниже приводится описание пакета.

Интерфейс сервлета

Главным понятием в интерфейсом сервлета является интерфейс Servlet. Все сервлеты реализуют этот интерфейс либо на прямую, либо обычным способом, наследуя класс, который реализует его, например как HttpServlet.

Наследование cервлета

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

Взаимодействие с клиентом

Когда сервлет принимает сигнал от клиента, он получает два объекта:

  • Объект ServletRequest, который устанавливает связь от клиента к серверу.
  • Объект ServletResponse, который устанавливает связь от сервлета обратно к клиенту.

ServletRequest и ServletResponse интерфейсы пакета javax.servlet.

Интерфейс ServletRequest

Интерфейс ServletRequest предоставляет сервлету доступ к:

  • Такой информации как имена параметров предоставляемых клиентом, протокол (схема) используемый клиентом, и имена удаленного хоста, который выполнил запрос и сервера, который его получил
  • Входной поток, ServletInputStream. Сервлеты используют входной поток для получения данных от клиентов, которые используют протоколы уровня приложений, такие как методы HTTP POST и PUT.

Интерфейсы, наследующие интерфейс ServletRequest позволяют сервлетам получать более специфичные данные протокола. Например, интерфейс HttpServletRequest содержит методы для получения специальной информации HTTP заголовков.

Интерфейс ServletResponse

Интерфейс ServletResponse предоставляет сервлету методы, для отправки сообщений клиенту. Он:

  • Позволяет сервлету установить длину содержимого и тип MIME ответа.
  • Устанавливает выходной поток, ServletOutputStream, и Writer через который сервлет может отправить данные ответа.

Интерфейсы, наследующие интерфейс ServletResponse предоставляют сервлетам более специфичные возможности. Например, интерфейс HttpServletResponse содержит методы позволяющие сервлету манипулировать специальной информации HTTP заголовков.

Дополнительные возможности HTTP сервлетов

Классы и интерфейсы описанные выше составляют обычный сервлет. HTTP сервлет обладает некоторыми дополнительными объектами, которые предоставляют возможности отслеживания сессии. Разработчик может использовать эти интерфейсы для поддержания статуса между сервлетом и клиентом, который сохраняется через множественные соединения в течение определенного периода времени. HTTP сервлеты также имеют объекты, которые работают с закладками (cookie). Разработчик использует интерфейс закладок для того, чтобы сохранять данные у клиента и получать эти данные обратно.