Introducción
Esta directriz se centra en identificar servlets. En la sección Directriz:
servlets se proporciona ayuda adicional sobre servlets.
Identificación de servlets
Los servlets son clases de servidor que interactúan con clientes basados en la web. Se identifican fundamentalmente de
las clases de control (consulte la sección Directriz: clase
de análisis) en arquitecturas web. Se pueden utilizar para generar páginas web a efectos de presentación, pero en
general, las JSP son más adecuadas para ello (consulte la sección Directriz: JavaServer Page (JSP) para obtener más información). También se pueden
utilizar para interactuar con bases de datos, como en una configuración de despliegue centrada en la web, tal como se
describe en la sección Concepto: configuraciones de despliegue de J2EE. Y desde J2EE 1.4, también se pueden
utilizar para implementar servicios web tal como define la especificación JAX-RPC.
Sin embargo, para aplicaciones con una lógica empresarial significativa, o para aplicaciones que necesitan las
características que ofrecen los EJB, es más adecuado una configuración de despliegue de varias capas (consulte la
sección Concepto: configuraciones de despliegue de J2EE para obtener más información). En
este caso, los servlets habitualmente se utilizan para coordinar la lógica de presentación y para proporcionar un
puente entre la lógica empresarial y los datos que proporcionan los EJB.
Un uso habitual de un servlet es el de controlador frontal. Los controladores frontales proporcionan un único punto de
entrada a una aplicación, que hace que la seguridad, el estado de la aplicación y la presentación tengan un carácter
uniforme y sean más fáciles de mantener. Un controlador frontal acepta una solicitud de usuario, la procesa y
determina cuál es el componente adecuado para reenviársela. Consulte Core J2EE Design Patterns - Front
Controller ([ALU01]) para obtener más detalles.
Si el diseño tiene un gran número de JSP con un código de control similar, considere el introducir un servlet para
consolidar esta lógica en un único lugar.
Modelado de servlets
En RUP los servlets se representan con Producto de trabajo: clases de diseño y por lo tanto se modelan como
clases. Con los servlets para manejar solicitudes HTTP se utiliza el estereotipo <<HTTPServlet>>. Con los
servlets para manejar otros protocolos se utiliza el estereotipo <<GenericServlet>>.
Se puede pensar como si cada servlet proporciona la misma interfaz, una única operación que da servicio a solicitudes y
que proporciona información de contexto de servlet, sesión y cliente estándar. Por lo tanto, al modelar un servlet no
se trata tanto de definir las operaciones de interfaz, sino de como definir sus responsabilidades y cómo interactúa con
otros elementos de diseño como, por ejemplo, clientes, JSP, clases de ayudante, EJB, etc.
Punto final de servicios web
Como se ha visto con anterioridad, los servlets se pueden utilizar para implementar servicios web, con la necesidad de
cumplir requisitos que se indican a continuación:
-
Debe tener un constructor público predeterminado.
-
Debe implementar todos los métodos que se declaran en la sección Interfaz de punto final de servicio y sus métodos deben ser públicos y no
finales ni estáticos.
-
Debe ser sin estado.
-
La clase debe ser pública, y no final ni abstracta.
|