Inhalt

Weitere Möglichkeiten

Sitzungsverfolgung

Die Java Server Pages bieten sehr einfache Methoden um eine Sitzungsverfolgung zu implementieren. Dazu verwendet man bei der Direktive page das Attribut session mit dem Wert (dies ist sogar die Default-Einstellung). Damit steht für die Sitzing das implizite Objekt session zur Verfügung.
Ausserdem besteht die Möglichkeit, eine JavaBean in den Gültigkeitsbereich (scope) session einzubinden, die für alle weiteren Anfragen des selben Benutzers bestehen bleibt. (s. die Aktion useBean)

Die JSP-Server versucht, bei eingestellter Sitzungsverfolgung, dem Client ein Cookie zu senden und dieses bei jeder weiteren Anfrage zur Identifikation des Benutzers zu verwenden. Er erkennt dabei, ob der Benutzer die Verwendung von Cookies deaktiviert hat. In einem solchen Fall wird die eindeutige Sitzungs-Nummer (SessionId) als Parameter an jeden Link innerhalb der Seite, der zur Web-Anwendung zurückführt angehängt. Dieses Verfahren heißt URL-Rewriting. Der Programmierer muss allerdings dabei jede in seiner JSP verwendete Link-Adresse mit Hilfe der Methode java.lang.String encodeURL(java.lang.String url) bearbeiten. Diese Methode hängt an die URL die ID der aktuellen Sitzung an, sofern das Sitzungsmanagement nicht über Cookies realisiert werden kann.


eigene Tags definieren

Ein großer Schritt in Richtung Modularisierung und Trennung zwischen Programm-Code und HTML-Design gelingt den Java Server Pages mit Hilfe von selbst definierten Tags. Dabei kann der Programmierer beliebig viele eigene Tags, die dann mit Hilfe von XML-Namensräumen eindeutig in HTML-Seiten verwendet werden können, erzeugen. Die Prozedur dazu ist leider etwas komplexer, weswegen vorher geprüft werden sollte, ob sich der große Aufwand für die betreffende Web-Anwendung lohnt.
Die Unterstützung hierfür bietet das Package javax.servlet.jsp.tagext an. Für jedes selbst definierte Tag muss eine Klasse mit dem Interface Tag implementiert werden. Der JSP-Server ruft beim Auftreten eines solchen Tags innerhalb einer JSP festgelegte Methoden dieser so genannten Tag-Handler auf, nachdem er ein Objekt dieser Klasse erzeugt hat. Zur einfacheren Programmierung existieren für Tag-Handler Klassen schon vorgefertigte "Support"-Klassen (TagSupport und BodyTagSupport), die die meisten Methoden schon implementiert haben. Der Programmierer braucht nur noch die für seinen speziellen Fall benötigten Erweiterungen einbauen.
Zur Definition der Namen und der möglichen Attribute der selbst definierten Tags werden XML-Dokumente verwendet, die so genannten Tag-Bibliotheks-Descriptoren (tld = tag library descriptor). Die Syntax dieser XML-Dokumente wiederum ist festgelegt in einer DTD (Document Type Definition): http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd
Die TLD-Datei wird über die taglib-Direktive lokalisiert, in der auch der XML-Namensraum der neuen Tags angegeben wird.

Inhalt