Inhalt Abbildung PDF Source SCWCD
 |<    <     >    >|  Generated by CoCoDiL

8 JavaServer Pages Technology Model

8.1 JSP Elemente

Identify, describe, or write the JSP code for the following elements: (a) template text, (b) scripting elements (comments, directives, declarations, scriptlets, and expressions), (c) standard and custom actions, and (d) expression language elements.

8.1.1 template Text

Alles was kein JSP Element ist ein Template Text. Templates können jede Art von Text sein: HTML,WML, XML oder einfacher Text. Auch wenn JSP fast immer im Zusammenhang mit HTML gebraucht wird, basiert JSP nicht auf HTML. Der Template Text wird so wie er ist, dem Browser mitgegeben. Der Template Text ist immer der statische Teil einer JSP, er wird mit den dynamischen Teil (den JSP Elementen) gemischt und das Ergebnis wird als Response Stream weitergereicht.

Möchte man ein JSP Element darstellen, ohne dass es interpretiert wird, so geht dies durch durch quoten

8.1.2 Skripting Elemente

Kommentare

Kommentare dienen nur der Dokumentation und werden folgendermassen gebildet

JSP Kommentare können nicht ineinander verschachtelt werden.

Dieser Kommentar wird nicht in die HTML generierte Seite eingebaut. Möchte man in die HTML generierte Seite einen Kommentar einbauen, so kann man dies als Template Text machen.

<!-- Dies ist ein Html Kommentar -->

Direktive

Die JSP Maschine übersetzt eine JSP Seite in ein Servlet. Mit den Direktiven kann man der JSP Maschine Anweisungen geben.

Es gibt 3 Arten von Direktiven:

Dies sagt der JSP Maschine, dass Java als Skriping Elemente eingebunden wird.

An dieser Stelle wird die Datei copyright.html eingebunden.

Zusammenfassend lässt sich sagen:

Deklarationen

Deklarationen ermöglichen es Java Variablen oder Methoden zu definieren, und zu initialisieren Deklarationen beginnen mit <%! und endet mit %>. Es kann jede mögliche Java Code Definition beinhalten.

Beachte dass in Java jedes Statement mit einem Semikolon abgeschlossen wird. Ansonssten weir ein Fehler eingebunden.

Skriplets

Skriplets sind Java Code Fragmente die in JSP Seiten eingebunden werden.

Das Skriplet wird jeweils ausgeführt, sobald eine Anfrage an das Servlet erfolgt. Ein Skriplet beginnt mit <% und endet mit %>. Dazwischen stehen ein oder mehrere Java-Statements. Beachte dass die Anweisungen mit einem Semikolon abgeschlossen werden müssen.

Expressions

Expressions sind Java Ausdrücke, deren Auswertung in die Ausgabe eingebunden werden. Beispiele:

Es ist zu beachten das im Gegensatz zu den Skriplets, Ausdrücke nicht mit einem Semikolon abgeschlossen werden. Ausdrücke beginnen mit <%= und enden mit %>.

Hier einige Beispiele die keine Ausdrücke sind:

<%= aBool; %>Ein Ausdruck wird nicht mit einem Semikolon beendet
<%= int i=20 %>Man kann in einem Ausdruck keine Variable oder Methode deklarieren
<%= sBuff.setLength(12) %>Die Methode gibt keinen Wert zurück

Die Auswerung eines Ausdrucks muss kein String sein, aber in einen String konvertiert werden können.

Erkennt die JSP Maschine dies nicht schon zur Übersetzungszeit, so wird bei der Auswertung der Anfrage

ein ClassCastException ausgelöst.

8.1.3 Standard und Custom Actions

Aktionen sind Anweisungen an die JSP Maschine, die zur Laufzeit ausgeführt werden. Es gibt zwei Arten von Aktionen.

Zum einen dijenigen mit dem Prefix jsp, z.B: <jsp:include page="neAndereJsp.jsp" />; Dies sind die sogenannten Standard Actions. Custom Actions haben einen anderen Prefix als jsp.

Im Unterschied zu den anderen JSP-Elementen wie Direktiven und Skriptelemente wird für Aktionen nur noch die XML-Syntax genommen.

Innerhalb des Rumpfes können beispielweise Kindelemente, die Paramter an die Aktion übergeben, enthalten sein, oder auch Template-Daten, auf deren Ausgabe die Aktion in irgendeiner Form Einfluss nimmt.

Beispiel mit Paramterübergabe:

Kommt die Aktion ohne Rumpf aus so kann die Syntax auf

verkürzt werden.

Standard Custom Actions müsssen nicht extra deklariert werden. Eine Custom Standard Action benötigt eine taglib Direktive. Die Taglib Direktive ordnet dem Prefix eine TagLibDescription Datei zu. Innerhalb einer TLD-Datei wird dem Aktionsname eine Klasse zugeordnet. Diese Klasse ist für die Ausführung der Aktion notwendig.


Abb. 8.1: Bedeutung der taglib Direktive

8.1.4 Expression Language Elemente

Die Expression Language wurde mit der neuen JSP 2.0 Definition eingeführt. Mit der EL ist es einfacher die dynamische Teile in die JSP einzubauen. Mit Hilfe von EL Ausdrücken können insbesondere Daten einfacher abgefragt werden, die in JavaBeans gespeichert sind. Gibt es in einer JavaBean beispielsweise ein Objekt teilnehmer mit einer Eigenschaft nachname, kann ein Wert einfach mit ${teilnehmer.nachname} verwendet werden.

Man kann auch sehr einfach auf Elemente innerhalb einer Collection zugreifen z.B ${kurs.teilnehmer[0].nachname}

Außerdem sin diese Ausdrücke für die Bestimmung von Attributwerten in Aktionen einsetzbar, wenn diese erst zur Laufzeit ermittelt werden sollen.

8.1.5 Zusammenfassung JSP Elemente

JSP Tag TypeKurze BeschreibungTag Syntax
DirectiveSpezifiziert zur Übersetzugszeit Anweisungen an die JSP Maschine<%@ Directives %>
DeklarationDeklariert und Definiiert Methoden und Variablen<%! Java Deklerations %>
ScripletErmöglicht es Java Code in JSP einzufügen<% Some Java Code %>
ExpressionWird ausgeführt und die Auswertung in die Ausgabe eingefügt<%= Code %>
Standard ActionsEnthält Laufzeit Anweisungen an JSP Maschine
Custom ActionsLaufzeit Anweisungen an JSP Maschine aus einzubindender Bibliothek
Expression Language ElementeSpezielle Sprache. Auswertung wird in Ausgabe eingefügt${ ein EL-Ausdruck }
CommentWird nicht ausgewertet<%-- Any Text --%>
Inhalt Abbildung PDF Source SCWCD
 |<    <     >    >|  Generated by CoCoDiL