Principes et conseils : Identifier les servlets
Rubriques
Introduction
Ces conseils sont axés sur l'identification des servlets. Pour plus de conseils sur les servlets, voir Principes et conseils : Servlets.
Identifier les servlets
Les servlets sont des classes de serveur qui interagissent avec des clients basés sur le Web. Il sont principalement identifiés à partir de classes de contrôle (voir Principes et conseils : Classe d'analyse ) dans les architectures Web. Ils peuvent être utilisés pour générer des pages Web pour des objectifs de présentation, mais en général cela correspond mieux aux JSP (voir Principes et conseils : JavaServer Page). Ils peuvent également être utilisés pour interagir avec les bases de données, comme dans une configuration de déploiement centrée Web, décrite dans Concepts :
Configurations de déploiement J2EE. Depuis J2EE 1.4, les servlets peuvent également être utilisés pour implémenter des services Web comme nous le définissons dans la spécification JAX-RPC.
Cependant, pour les applications possédant une logique applicable significative, ou des applications qui nécessitent les fonctionnalités fournies par les EJB, une configuration de déploiement multi-niveau
(voir Concepts : Configurations de déploiement J2EE ) est plus adaptée. Dans ce cas, les servlets sont généralement utilisés pour coordonner la logique de présentation et fournir un lien à la logique applicative et aux données fournies par les EJB.
On utilise communément un servlet comme Contrôleur frontal. Les contrôleurs frontaux fournissent un seul point d'entrée à une application, ce qui rend la sécurité, l'état d'application et la présentation uniformes et plus faciles à maintenir. Un contrôleur frontal accepte une demande utilisateur, traite la demande et détermine le composant de présentation approprié auquel la transférer. Voir Modèles de conception de base J2EE - Contrôleur frontal
([ALU01]) pour plus de détails.
Si votre conception comporte un grand nombre de JSP avec des codes de contrôle similaires, envisagez d'introduire un servlet pour intégrer cette logique à un seul endroit.
Modéliser les servlets
Les servlets sont représentés dans le RUP par Artefact : Classe de conception, et sont donc modélisés en tant que classes. Les servlets chargés des demandes HTTP sont stéréotypés comme <<ServletHTTP>>. Les servlets chargés d'autres protocoles sont stéréotypés <<ServletGénérique>>.
On peut considérer que tous les servlets fournissent la même interface, une seule opération qui traite les demandes et fournit des informations sur le client, la session, et le contexte du servlet. Ainsi, la modélisation d'un servlet ne s'intéresse pas à la définition d'opérations d'interface, mais à la définition de ses responsabilités et de la manière dont il interagit avec d'autres éléments de conception, comme les clients, les JSP, les classes utilitaires, les EJB, etc.
Extrémité de services Web
Comme nous l'avons vu précédemment, les servlets peuvent être utilisés pour implémenter les services Web et doivent répondre aux exigences suivantes :
- Il doit avoir un constructeur publique par défaut.
- Il doit implémenter toutes les méthodes déclarées par l'Interface d'extrémité de service et ses méthodes métier doivent être publiques et non finales ni statiques.
- Il doit être sans état.
- La classe doit être publique, mais ni finale ni abstraite.
|