Diretrizes: Identificando Servlets
Tópicos
Introdução
Essa diretriz focaliza a identificação de Servlets. Orientação adicional sobre Servlets
é fornecida em Diretrizes: Servlets.
Identificando Servlets
Servlets são classes do servidor que interagem com clientes com base na Web. Eles são
identificados principalmente a partir de classes de controle (consulte Diretrizes:
Classe de Análise) em arquiteturas da Web. Eles podem ser utilizados para gerar páginas da Web
com finalidades de apresentação, mas em geral, isso é melhor adaptado para JSPs (consulte
Diretrizes: JavaServer Page). Também é possível utilizá-los
para interagir com bancos de dados, como em uma configuração de implementação centrada na Web, conforme
descrito em Conceitos:
Configurações de Implementação do J2EE. E desde o J2EE 1.4,
os servlets também podem ser utilizados para implementar serviços da Web, conforme definido na
Especificação JAX-RPC.
Entretanto, para aplicativos com lógica de negócios significativa ou aplicativos
que requeiram os recursos oferecidos pelos EJBs, uma configuração de implementação multicamada
(consulte Conceitos: Configurações da Implementação
do J2EE) é mais apropriada. Nesse caso, os servlets são normalmente
utilizados para coordenar a lógica de apresentação e fornecer uma ponte com a lógica de negócios
e os dados fornecidos pelos EJBs.
Uma utilização comum de um servlet é como um Controlador Frontal. Esses controladores fornecem
um único ponto de entrada para um aplicativo, tornando, assim, a segurança, o estado do aplicativo
e a apresentação uniformes e mais fáceis de manter. Um controlador frontal aceita
um pedido do usuário, processa o pedido e determina o componente de apresentação
apropriado para o qual redirecioná-lo. Consulte Padrões de Design Núcleo do J2EE - Controlador Frontal
([ALU01]) para obter detalhes.
Se o seu design contiver um grande número de JSPs com código de controle semelhante, considere
a introdução de um servlet para consolidar essa lógica em um local.
Modelando Servlets
Os servlets são representadas no RUP por Artefato:
Classe de Design e, portanto, são modelados como classes. Os servlets para manipulação de
pedidos HTTP são estereotipados como <<HTTPServlet>>. Os servlets para manipulação de
outros protocolos são estereotipados como <<GenericServlet>>.
É possível pensar que todo servlet fornece a mesma interface, uma única operação
que atende pedidos e fornece informações padrão de cliente, de sessão e de contexto do
servlet. Portanto, a modelagem de um servlet não está relacionada à definição de operações de
interface, mas à definição de suas responsabilidades e de como interagirá com
outros elementos de design, como clientes, JSPs, classes auxiliares, EJBs, etc.
Nó de Extremidade de
Serviços da Web
Como vimos anteriormente, os servlets podem ser utilizados para implementar
serviços da Web e precisam preencher os requisitos a seguir:
- Eles devem ter um construtor público padrão.
- Eles devem implementar todos os métodos declarados pelo
Service Endpoint Interface
e seus métodos de negócios devem ser públicos e não finais ou estáticos.
- Eles devem ser servlets sem preservação de estado.
- A classe deve ser pública, mas não final ou abstrata.
|