17.24 Inter-Servlet-Kommunikation
Die Servlets, die innerhalb eines Servlet-Containers ablaufen, können untereinander Informationen austauschen. Dazu gibt es drei Möglichkeiten: Ein Servlet kann Informationen über andere Servlets einholen, es kann Servlet-Funktionen nutzen und mit anderen Servlets Informationen teilen.
17.24.1 Daten zwischen Servlets teilen
Möchten sich Servlets Daten teilen, so können wir dafür spezielle Klassen einrichten oder die Systemeigenschaften-Klasse Properties verwenden. Um an das Properties-Objekt des Systems zu gelangen, schreiben wir:
Properties p = System.getProperties();
Anschließend können wir mit dieser Referenz über die Methoden put(), get() und remove() Objekte einlagern, auslesen und Einträge löschen. Damit der Name einer Eigenschaft nicht mit Systemeigenschaften kollidiert und Servlets untereinander keine Probleme mit der Zuordnung bekommen, ist es eine gute Idee, eine hierarchische Namensgebung wie Servletname.Eigenschaft einzuführen.
Beispiel Ein Datum-Servlet setzt in die Systemeigenschaft das aktuelle Datum hinein.
Properties p = System.getProperties();
p.set( "Date.currentDate", new Date().toString() );
|
Der Weg über eine eigene Klasse hätte den Vorteil, dass die Werte persistent über Sitzungen gehalten werden können. Eine Implementierung einer Klasse ist auch so weit kein Problem. Für alle Lösungen sollten wir jedoch berücksichtigen, dass die Daten nach Ablauf des Lebenslaufs wieder ausgetragen werden.
|