Instructions: Identification de servlets
Ces instructions portent sur l'identification et la modélisation de servlets pour une application J2EE.
Relations
Description principale

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.