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.
|