Richtlinie: Servlets festlegen
Diese Richtlinie erläutert, wie Servlets für eine J2EE-Anwendung festgelegt und modelliert werden.
Beziehungen
Zugehörige Elemente
Hauptbeschreibung

Einführung

Diese Richtlinie konzentriert sich auf das Festlegen von Servlets. Nähere Anleitungen zu Servlets finden Sie unter Richtlinie: Servlet.

Servlets festlegen

Servlets sind Serverklassen, die mit webbasierten Clients interagieren. Sie werden in Webarchitekturen primär aus Steuerungsklassen ermittelt (siehe Richtlinie: Analyseklasse). Sie können auch dazu verwendet werden, Webseiten für Präsentationszwecke zu generieren, aber im allgemeinen eignen sich JSPs besser dafür (siehe Richtlinie: JavaServer Page (JSP)). Sie können auch für die Interaktion mit Datenbanken verwendet werden, z. B. in einer webzentrierten Implementierungskonfiguration. Siehe dazu die Beschreibung in Konzept: J2EE-Implementierungskonfigurationen. Beginnend mit J2EE 1.4 können Servlets auch zur Implementierung von Web-Services gemäß der Definition in der JAX-RPC-Spezifikation verwendet werden.

Für Anwendungen mit signifikanter Geschäftslogik oder für Anwendungen, die von den EJBs bereitgestellte Features benötigen, ist eine mehrschichtige Implementierungskonfiguration besser geeignet (siehe Konzept: J2EE-Implementierungskonfigurationen). In diesem Fall werden Servlets normalerweise dazu verwendet, die Darstellungslogik zu koordinieren und eine Brücke zur Geschäftslogik und zu den von EJBs bereitgestellten Daten herzustellen.

Ein typische Verwendung eines Servlets ist der Einsatz als Front Controller. Front Controller bieten einen einzelnen Eingangspunkt zu einer Anwendung und bewirken dadurch, dass Sicherheit, Anwendungsstatus und Darstellung einheitlich und einfacher zu verwalten sind. Ein Front Controller akzeptiert eine Benutzeranforderung, verarbeitet sie und ermittelt die geeignete Darstellungkomponente, an die sie weitergeleitet werden sollte. Einzelheiten hierzu finden Sie unter Core J2EE Design Patterns - Front Controller ([ALU01]).

Wenn Ihr Design eine große Anzahl von JSPs mit ähnlichem Steuercode enthält, könnten Sie ein Servlet verwenden, um diese Logik an einem Ort zu konsolidieren.

Servlets modellieren

Servlets werden in RUP durch eine Designklasse dargestellt. Folglich werden sie als Klassen modelliert. Servlets zur Behandlung von HTTP-Anforderungen verwenden das Stereotyp <<HTTPServlet>>. Servlets zur Behandlung anderer Protokolle verwenden das Stereotyp <<GenericServlet>>.

Sie können sich jedes Servlet so vorstellen, dass es dieselbe Schnittstelle bereitstellt, eine einzelne Operation, die Anforderungen bedient und Standardclient-, Sitzungs- und Servletkontextinformationen bereitstellt. Daher bezieht sich die Modellierung eines Servlets nicht auf die Definition von Schnittstellenoperationen, sondern vielmehr auf die Zuständigkeiten des Servlets und darauf, wie es mit anderen Designelementen, wie Clients, JSPs, Helper-Klassen, EJBs, usw., interagiert.

Web-Services-Endpunkt

Wie bereits erläutert, können Servlets zum Implementieren von Web-Services verwendet werden. Dazu müssen Sie folgende Voraussetzungen erfüllen:

  • Sie müssen einen allgemein zugänglichen Standardkonstruktor besitzen.
  • Sie müssen alle Methoden implementieren, die von der Serviceendpunktschnittstelle deklariert werden, und ihre Geschäftsmethoden müssen allgemein zugänglich und weder final noch statisch sein.
  • Sie müssen statusunabhängig sein.
  • Die Klasse muss allgemein zugänglich, aber weder final noch abstrakt sein.