Direktiven sind ein Mittel, um Einfluss auf die Übersetzung und die Ausführung
einer Java Server Page zu nehmen. Aus Gründen der Übersichtlichkeit sollten Direktiven
stets am Anfang einer Datei stehen, obwohl sie an einer beliebigen Stelle untergebracht
werden könnten.
Die Direktiven haben alle folgende Syntax:
<%@ Direktivenname { attributname = "wert" } ... %>
Es gibt seit der Version 1.1 der Java Server Pages folgende drei Direktiven:<%@ include file="dateiname" %>
Die Direktive include wird benutzt, um Quellcode-Teile in verschiedenen Java Server Pages wieder zu verwenden. Noch vor dem Übersetzen der JSP wird die in der Direktive angegebene Datei in die Java Server Page an die Stelle der include-Direktive eingefügt. Als Pfadangaben sind dabei sowohl relative, als auch absolute Pfade möglich.
<%@ page language="java"
extends="Klassenname"
import="Klassen-/Paket- Liste"
buffer="none | n [KiloByte]"
autoFlush="true | false"
info="Infotext"
inThreadSave="true | false"
contentType="MIME-Type [; charset]"
errorPage="URL"
isErrorPage="true | false"
session="true | false"
%>
"java"
. Diese Angabe ist also nicht zwingend erforderlich.
javax.servlet.jsp.JspPage
implementieren.
"none"
, um das Puffern zu unterdrücken. In diesem Fall
werden alle Ausgaben direkt zum Client geschickt. Zu Beachten ist, dass eventuell eigens
gesetzte HTTP-Header (z.B. durch request.setHeader(Name, Wert)
) gesetzt werden
müssen, bevor der Puffer zum Ersten Mal Daten zum Client sendet. Ausserdem wird im Fall einer
Exception zur Laufzeit der Puffer-Inhalt gelöscht und eine Fehlerausgabe gestartet. Dies kann
jedoch nur erfolgen, wenn der Pufferinhalt noch nicht versendet wurde.
"true"
wird der durch buffer=
Konfigurierte Puffer automatisch geleert, wenn er gefüllt ist. Das kann man mit der Einstellung
"false"
verhindern. Jetzt wird im Fall eines vollen Puffers eine IOException
geworfen, falls der Puffer nicht explizit durch request.flushBuffer()
geleert wird.
getServletInfo()
abgerufen werden.
"false"
angegeben, so wird nicht für jede
Client-Anfrage ein neuer Thread erzeugt. Eine Anfrage muss so warten, bis die aktuelle
Anfrage abgearbeitet ist. Default-Einstellung ist allerdings "true"
,
wobei man für die Synchronisation beim Zugriff auf gemeinsame Ressourcen
selbst kümmern muss.
"text/html; charset=ISO-8859-1"
.
"true"
gesetzt. Das ermöglicht der JSP
Zugriff auf das implizite Objekt mit dem Namen
exception
, das Informationen über die Ausnahme enthält."false"
.
"true"
erhält man Zugriff auf das
implizite Objekt session
, das Informationen
über die aktuelle Sitzung (z.B. SessionID, eigene Informationen) beherbergt.
Die Anwendung wird im Abschnitt über
Sitzungsverfolgung genauer behandelt."true"
.
<%@ taglib uri="URI" prefix="Namensraum" %>
Die Java Server Pages erlauben dem Programmierer, eigene Tags zu definieren, die dann einfach in der JSP anzuwenden sind und die Trennung zwischen Design und Programmierung innerhalb des Dokuments erleichtern. Das Attributuri
enthält hierbei
die Position einer Datei, die die Tag-Definitionen (tld = tag library descriptor)
enthält. Mit prefix
wird ein XML-Namensraum angegeben, in dem
die neu definierten Tags erreichbar sind.