Introduction
Ces instructions portent sur l'identification de servlets. Des conseils supplémentaires sur les servlets figurent dans
Instructions : Servlet
Identification des servlets
Les servlets sont des classes de serveur qui interagissent avec des clients Web. Ils sont principalement identifiés à
partir des classes de contrôle (reportez-vous à Instructions :
Classe d'analyse) des architectures Web. Les servlets peuvent être utilisés pour générer des pages Web à des fins
de présentation, mais sont en général mieux adaptés aux pages JSP (reportez-vous à Instructions : JavaServer Page (JSP)). Ils peuvent également être utilisés comme
configuration d'un déploiement centré sur le Web pour interagir avec les bases de données, comme décrit dans Concept : Configurations de déploiement J2EE. Depuis J2EE 1.4, ils peuvent servir à
implémenter des services Web, comme défini dans la spécification JAX-RPC .
Pour les applications comportant une logique métier importante ou pour lesquelles les fonctions des EJB sont
nécessaires, une configuration de déploiement multi-niveau (reportez-vous à Concept : Configurations de déploiement J2EE) est plus appropriée. Dans ce cas, les
servlets sont généralement utilisés pour coordonner la logique de présentation et pour créer une passerelle avec la
logique métier et les données fournies par les EJB.
Le contrôleur de front constitue une utilisation type d'un servlet. Les contrôleurs de front fournissent un point
d'entrée unique à une application, ce qui facilite et uniformise le maintien de la sécurité, de l'état de l'application
et de la présentation. Un contrôleur de front accepte une requête utilisateur, la traite, puis détermine le
composant de présentation qui convient pour la transmettre. Pour plus de détails, reportez-vous à Core J2EE Design
Patterns - Front Controller Core (Patterns de conception J2EE centraux - Contrôleur de front) ([ALU01]).
Si la conception comporte un grand nombre de pages JSP qui contiennent du code de contrôle analogue, étudiez
l'insertion d'un servlet pour consolider cette logique à un emplacement.
Modélisation des servlets
Dans RUP, les servlets sont représentés par un produit
: Classe de conception et sont donc modélisés comme des classes. Les servlets visant à traiter des requêtes HTTP
sont affectés du stéréotype <<HTTPServlet>>. Les servlets visant à traiter d'autres protocoles sont
affectés du stéréotype <<GenericServlet>>.
Chaque servlet peut être considéré comme fournissant la même interface, une opération unique qui fournit des services
et des informations standard sur le servlet, la session et le client. Modéliser un servlet ne porte donc pas sur la
définition d'opérations d'interface, mais davantage sur la définition de ses responsabilités et de son mode
d'interaction avec d'autres éléments de conception, tels que les clients, les pages JSP, les classes auxiliaires, les
EJB, etc.
Noeud final de services Web
Comme expliqué précédemment, les servlets peuvent servir à implémenter des services Web et doivent satisfaire les
exigences suivantes :
-
Ils doivent comporter un constructeur public par défaut.
-
Ils doivent implémenter toutes les méthodes déclarées par l'interface de noeud final de service et leurs méthodes métier doivent être
publiques, mais ni finales, ni statiques.
-
Ils doivent être sans état.
-
La classe doit être publique, mais ni finale, ni abstraite.
|