Рекомендация: Идентификация сервлетов
В этом руководстве обсуждается, как определить и смоделировать сервлеты для приложения J2EE.
Взаимосвязи
Связанные элементы
Основное описание

Введение

Это руководство посвящено идентификации сервлетов. Дополнительное руководство о сервлетах находится в разделе Руководство: Сервлет

Идентификация сервлетов

Сервлеты - это классы сервера, взаимодействующие web-клиентами. Они преимущественно идентифицируются от классов управления (см. Руководство: Класс анализа) в архитектурах web. Они могут использоваться для генерации Web-страниц в целях представления, но в общем случае для этого больше подходят страницы JSP (см. Руководство: Страница JSP (Java Server Page)). Их также можно использовать для взаимодействия с базами данных, как в конфигурации развертывания, ориентированной на Web, что описано в разделе Концепция: Конфигурации развертывания J2EE. Также, начиная с J2EE 1.4, сервлеты можно использовать для реализации Web-служб, как это определено в спецификации JAX-RPC.

Однако, для приложений с важной бизнес-логикой, или для приложений, требующих возможностей объектов EJB, более подходит многоуровневая конфигурация развертывания (см. Концепция: Конфигурации развертывания J2EE). В этом случае, обычно применяются сервлеты для координации логики оформления и обеспечения моста к бизнес-логике и данным, предоставленным объектами EJB.

Типичное применение сервлета - это Передний контроллер. Передние контроллеры предоставляют приложению единственную точку входа, что облегчает и унифицирует поддержку защиты, состояния приложения и оформления.   Передний контроллер получает доступ к запросу пользователя, обрабатывает его и определяет подходящий компонент оформления, которому перенаправляется запрос. Более подробная информация находится в разделе Базовые шаблоны проекта J2EE - Передний контроллер ([ALU01]).

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

Моделирование сервлетов

В RUP сервлеты представляет Рабочий продукт: Класс проекта, и они моделируются как классы. Сервлеты, управляющие запросами HTTP, имеют стереотип <<HTTPServlet>>. Сервлеты, управляющие другими протоколами, имеют стереотип <<GenericServlet>>.

Можно думать о каждом сервлете как о способе предоставления одинакового интерфейса, одной операции, которая обслуживает запросы и обеспечивает стандартную информацию контекста сервлета, сеанса и клиента. Таким образом, моделирование сервлета не касается определения операций интерфейса, но определяет его ответственность и способ его взаимодействия с другими элементами проекта, такими как клиенты, страницы JSP, вспомогательные классы, объекты EJB и так далее.

Конечная точка Web-служб

Как мы видели ранее, сервлет может использоваться для реализации Web-службы и должен удовлетворять следующим требованиям:

  • Он должен иметь конструктор типа public по умолчанию.
  • Он должен реализовывать все методы, объявленные Интерфейсом конечной точки службы, а его бизнес-методы должны иметь тип public, а не final или static.
  • Он должен быть без сохранения состояния.
  • Класс должен иметь тип public, но не final, и не abstract.