Die JavaServer Pages Standard Tag Library ist eine Ansammlung von verschiedenen Tag-Bibliotheken, welche verschiedene Funktionen erfüllen. Von Programmablaufstrukturen, Lesen von XML-Dokumenten, Datenbankzugriffen, länderspezifischen Formatierungen sowie Funktionen decken die Tag-Bibliotheken alle Bereiche ab, welche die Arbeit mit JSP-Seiten erleichtern.
Voraussetzung für die Nutzung der JSTL 1.1 ist einerseits ein Java Development Kit, z. B. die Java 2 Standard Edition, andererseits ein geeigneter und konfigurierter Webserver wie Tomcat. Zusätzlich muss die aktuelle Version der JSTL 1.1 dem Webserver zur Verfügung gestellt werden, damit dieser die Funktionen der Tag-Bibliotheken interpretieren kann.
Die Expression Language (EL) ist zentraler Bestandteil von JSP 2.0 bzw. der JSTL 1.1 und ermöglicht auf einfache Weise z. B. Berechnungen durchzuführen, ohne Java-Code schreiben zu müssen. Die Scoped Variables bzw. die implizierten Objekte sind weitere Features der JSTL 1.1, welche mit der EL genutzt werden können.
Die Tag-Bibliothek core kann für das Setzen oder Entfernen von Variablen, Prüfen von Bedingungen, Durchlaufen von Schleifen, Abfangen von Fehlern, Einbinden externer Inhalte in die eigene JSP-Seite oder URL-Umleitungen eingesetzt werden. Beispiele werden diese Aktionen verdeutlichen.
Die Tag-Bibliothek xml ist zuständig für das Parsen bzw. Transformieren von XML-Dokumenten. Hierbei können ebenfalls Bedingungen geprüft oder Schleifen durchlaufen werden.
Mit der Tag-Bibliothek sql werden Zugriffe auf eine Datenbank realisiert. Hierbei können u. a. Daten abgefragt oder manipuliert, Tabellen erstellt bzw. gelöscht sowie Datenbankverbindungen hergestellt werden.
Das Präfix fmt gehört zur Tag-Bibliothek fmt, welche u. a. für länderspezifische Formatierungen von Datum, Zeit, Zahlen oder Währungsbeträgen zuständig ist. Das Beispiel “Datums_und_Zahlenformate.jsp“ wird dies veranschaulichen.
Die Tag-Bibliothek functions stellt verschiedene Funktionen zur Verfügung, welche von der Expression Language aus verwendet werden können, um z. B. Zeichenketten zu ersetzten oder zusammenzufügen.
Eine kritische Würdigung rundet das Thema der JavaServer Pages Standard Tag Library ab.
Inhaltsverzeichnis
Abkürzungsverzeichnis
Abbildungsverzeichnis
Management Summary
1. Einleitung
2 Voraussetzungen
2.1 Java 2 Standard Edition
2.2 Webserver
2.3 JSTL 1.1
2.4 Konfiguration des Webservers
3. Motivation und Gründe für
4. Die Expression Language
5. Scoped Variables
6. Versionen und Varianten der
7. Tag-Bibliotheken der
7.1 Tag-Bibliothek core
7.1.1 Allgemeine Aktionen
7.1.2 Bedingte Aktionen
7.1.3 Iterationen
7.1.4 URL-bezogene Aktionen
7.2 Tag-Bibliothek xml
7.2.1 Allgemeine Aktionen
7.2.2 Bedingte Aktionen
7.2.3 Transformationen
7.3 Tag-Bibliothek sql
7.4 Tag-Bibliothek fmt
7.5 Tag-Bibliothek functions
8. Kritische Würdigung
Anhang
Literaturverzeichnis
Abkürzungsverzeichnis
Abbildung in dieser Leseprobe nicht enthalten
A bbildungsverzeichnis
Abbildung 1: Sun J2SE 5.0 Documentation
Abbildung 2: Tomcat 5 mit JSTL-Implementierung
Abbildung 3: EL Browseranzeige
Abbildung 4: EL-basierte JSTL 1.0
Abbildung 5: RT-basierte JSTL 1.0
Abbildung 6: JSTL 1.1
Abbildung 7: <c:forTokens>-Beispiel
Abbildung 8: <c:url>-Beispiel
Abbildung 9: Datums- und Zeitformate JSTL
Abbildung 10: Beispiel Datums- und Formatfunktionen JSTL
Abbildung 11: Funktionen der JSTL 1.1
Management Summary
Die JavaServer Pages Standard Tag Library ist eine Ansammlung von verschiedenen Tag-Bibliotheken, welche verschiedene Funktionen erfüllen. Von Programmablaufstrukturen, Lesen von XML-Dokumenten, Datenbankzugriffen, länderspezifischen Formatierungen sowie Funktionen decken die Tag-Bibliotheken alle Bereiche ab, welche die Arbeit mit JSP-Seiten erleichtern.
Voraussetzung für die Nutzung der JSTL 1.1 ist einerseits ein Java Development Kit, z. B. die Java 2 Standard Edition, andererseits ein geeigneter und konfigurierter Webserver wie Tomcat. Zusätzlich muss die aktuelle Version der JSTL 1.1 dem Webserver zur Verfügung gestellt werden, damit dieser die Funktionen der Tag-Bibliotheken interpretieren kann.
Die Expression Language (EL) ist zentraler Bestandteil von JSP 2.0 bzw. der JSTL 1.1 und ermöglicht auf einfache Weise z. B. Berechnungen durchzuführen, ohne Java-Code schreiben zu müssen. Die Scoped Variables bzw. die implizierten Objekte sind weitere Features der JSTL 1.1, welche mit der EL genutzt werden können.
Die Tag-Bibliothek core kann für das Setzen oder Entfernen von Variablen, Prüfen von Bedingungen, Durchlaufen von Schleifen, Abfangen von Fehlern, Einbinden externer Inhalte in die eigene JSP-Seite oder URL-Umleitungen eingesetzt werden. Beispiele werden diese Aktionen verdeutlichen.
Die Tag-Bibliothek xml ist zuständig für das Parsen bzw. Transformieren von XML-Dokumenten. Hierbei können ebenfalls Bedingungen geprüft oder Schleifen durchlaufen werden.
Mit der Tag-Bibliothek sql werden Zugriffe auf eine Datenbank realisiert. Hierbei können u. a. Daten abgefragt oder manipuliert, Tabellen erstellt bzw. gelöscht sowie Datenbankverbindungen hergestellt werden.
Das Präfix fmt gehört zur Tag-Bibliothek fmt, welche u. a. für länderspezifische Formatierungen von Datum, Zeit, Zahlen oder Währungsbeträgen zuständig ist. Das Beispiel “Datums_und_Zahlenformate.jsp“ wird dies veranschaulichen.
Die Tag-Bibliothek functions stellt verschiedene Funktionen zur Verfügung, welche von der Expression Language aus verwendet werden können, um z. B. Zeichenketten zu ersetzten oder zusammenzufügen.
Eine kritische Würdigung rundet das Thema der JavaServer Pages Standard Tag Library ab.
1. Einleitung
Die Technologie der JavaServer Pages wurde ursprünglich für Webdesigner konzipiert, mit dem Ziel, Java-Quellcode in HTML-Dokumente einzubetten um damit eine Dynamisierung weg von statischen HTML-Seiten zu erreichen.[1]
Der Einsatz der JSP-Technologie, welche in Webanwendungen implementiert wurde, zeigte jedoch bald Schwachstellen auf, denn das unmittelbare Einbetten des Java-Quellcodes in die JSP-Seiten war äußerst umstritten, so dass, um dem Problem entgegen zu wirken, die Custom Tag Libraries mit der JSP-Version 1.1 entwickelt wurden.[2]
Den Webdesignern wurde eine Art Toolbox zum einbinden dynamischer Inhalte in HTML-Dokumente zur Verfügung gestellt, jedoch mit dem Problem, dass lange Zeit keine standardisierten Tag-Bibliotheken zur Verfügung standen und bei bestimmten Konstrukten wie Bedingungen oder Schleifen entweder auf Scriptlets ausgewichen oder eine neue, selbst entwickelte Tag-Bibliothek zur Verfügung gestellt werden musste, was die Portierbarkeit der Anwendungen auf andere Applikationsserver erschwerte.[3]
Um dem Problem entgegenzuwirken wurde versucht, den Webdesignern eine Art standardisiertes Bündel von Aktionen zur Verfügung zu stellen, welches immer wieder benötigte Funktionen beinhaltet.[4] Diese wurden in der JavaServer Pages Standard Tag Library (JSTL) zusammengefasst und in verschiedene Tag-Bibliotheken aufgeteilt.
“Die Arbeit mit den Tags der JSTL sollte vor allem den Webdesignern entgegen kommen, die nicht die Möglichkeit haben, komplexe Verarbeitungslogik an die Programmierer im Team abzugeben und sich ganz auf die Gestaltung der Optik zu konzentrieren.“[5]
JSTL ist mittlerweile in der Version 1.1 vorhanden und beinhaltet fünf Tag-Bibliotheken, mit welchen Programmablaufstrukturen, Lesen von XML-Daten, Datenbankzugriffe, länderspezifische Formatierungen sowie die Anwendung von Funktionen möglich sind.
Diese Seminararbeit wird sich zuerst mit den Voraussetzungen beschäftigen, die für die Benutzung von JSTL 1.1 notwendig sind. Anschließend wird auf die Ausdruckssprache der JSTL 1.1, und die damit verwendbaren Scoped Variables bzw. implizierten Objekte eingegangen. Nach einer kurzen Einführung in die verschiedenen Versionen und Varianten der JSTL werden die einzelnen Tag-Bibliotheken der JSTL 1.1 näher erläutert und anhand von Beispielen deren Funktionsweise aufgezeigt.
2 Voraussetzungen
2.1 Java 2 Standard Edition
Grundvoraussetzung für den Einsatz von JSP 2.0[6] und der JavaServer Pages Standard Tag Library (JSTL 1.1) ist die Java 2 Standard Edition J2SE SDK. Diese liegt mittlerweile in der Version J2SE 5.0[7] vor und kann unter folgender URL bezogen werden: http://java.sun.com/j2se/1.5.0/download.jsp
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1: Sun J2SE 5.0 Documentation[8]
Zuerst sollte die Java 2 Standard Edition auf dem Zielsystem, welches nachher für die Erstellung des Java-Quellcodes genutzt wird, installiert werden.
2.2 Webserver
Der nächste Schritt ist die Installation des Webservers, um JSP 2.0 und JSTL 1.1 nutzen zu können. Für die weitere Arbeit wird Tomcat als Webserver verwendet. Dieser liegt mittlerweile in der Version 5.5.1.2[9] vor und kann unter folgender URL bezogen werden: http://jakarta.apache.org/tomcat/
Ältere Versionen von Tomcat unterstützen die aktuelle JSP-Version 2.0 sowie die JSTL 1.1 nicht mehr.[10]
2.3 JSTL 1.1
Die JavaServer Pages Standard Tag Library stellt eine Kombination von Tags zur Verfügung. Dazu gehört z. B. das Lesen von XML-Daten, die Manipulation von Datenbanken oder Internationalization.[11] Sie ist in der aktuellen Version 1.1 in zwei Implementierungen vorhanden. Einerseits direkt von der Website der Firma Sun Microsystems unter:[12] http://java.sun.com/webservices/downloads/webservicespack.html,
andererseits in einer speziellen Portierung der Apache Software Foundation für Tomcat unter:[13] http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html.
Die Implementierung von Sun Microsystems hat jedoch zwei Nachteile. JSTL 1.1 ist nicht einzeln erhältlich sondern nur als Bestandteil des Java Web Service Developer Pack (JWSDP) und bei der Installation werden viele APIs mitgeliefert, die für den Einsatz von JSTL 1.1 zunächst nicht nötig sind.[14] Die Portierung der Apache Software Foundation hingegen ist eine eigenständige API, welche sich schnell und einfach in Tomcat integrieren lässt.
2.4 Konfiguration des Webservers
Nach erfolgreicher Installation der einzelnen Softwarekomponenten wird nun Tomcat konfiguriert, um JSTL 1.1 interpretieren zu können. Dafür muss zunächst JSTL 1.1 der Apache Software Foundation in ein entsprechendes Verzeichnis nach Wahl, z. B. C:\Programme\JSTL entzippt werden. Anschließend wird das Unterverzeichnis \lib mit den Dateien standard.jar und jstl.jar kopiert und unter der Verzeichnisstruktur \shared von Tomcat eingefügt.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2: Tomcat 5 mit JSTL-Implementierung[15]
Durch das Einfügen der standard.jar sowie der jstl.jar in die Verzeichnisstruktur \shared\lib können alle Web-Applikationen, welche sich im Ordner \webapps befinden, JSTL 1.1 nutzen.
Der Webserver ist nun fertig konfiguriert und die Startseite von Tomcat kann nach dem Starten des Webservers im Browser durch die Eingabe von http://localhost:8080 bzw. http://127.0.0.1:8080 erreicht werden.[16]
3. Motivation und Gründe für JSTL
Die Motivation, JSTL zu entwickeln bestand in erster Linie darin, die Erstellung von JSP-Seiten zu vereinfachen. Entwicklern sollte die Möglichkeit gegeben werden Funktionen, welche immer wieder benötigt wurden, nicht von Hand als Java-Code oder mit JavaBeans[17] in HTML-Seiten einzubinden, sondern bestimmte Grundfunktionalitäten über vordefinierte Tags durchführen zu lassen.[18] “Das betrifft etwa grundlegende Programmablaufstrukturen wie Verzweigungen und Schleifen, Zugriffe auf Datenbanken oder XML-Daten und länderspezifische Formatierungen.“[19]
JSTL 1.1 besteht aus der so genannten Standardbibliothek. Zu dieser gehören folgende Tag-Bibliotheken, auch Taglibs genannt:[20]
- core (Ein- und Ausgaben)
- xml (Handling für XML- und XSLT-Dateien)
- sql (Datenbankzugriffe)
- fmt (Zahlenformatierung)
- fn (Funktionen)
Zusammenfassend kann gesagt werden, dass die JSP Standard Tag Library mit Ihren Taglibs einer der Gründe ist, die JSP so mächtig macht.[21]
4. Die Expression Language
Eine zentrale Rolle bei JSTL 1.1 als auch bei JSP 2.0 spielt die so genannte Expression Language[22] (EL). Diese soll dem Entwickler helfen, den Umfang von Tag-Bibliotheken aber auch den Einsatz von Scriptlets zu reduzieren.[23] Sie kann z. B. dazu benutzt werden, um Berechnungen oder Vergleiche durchzuführen oder um neue Variablen zu setzen, ohne echten Java-Quellcode in das HTML-Dokument einbetten zu müssen. EL-Ausdrücke sind daran zu erkennen, dass Sie zwischen zwei { } stehen und mit einem $-Zeichen notiert werden.
Will man z. B. eine einfache Addition vornehmen, so ist dies direkt im HTML-Dokument realisierbar.
Codebeispiel:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h2>JSTL - Expression Language</h2>
Addition: ${5+10}
</body>
</html>
Hierbei wird als erstes die entsprechende Tag-Bibliothek eingebunden, anschließend die Berechnung durchgeführt. Im Browser wird dann als Ergebnis der Addition die Zahl 15 im HTML-Dokument ausgegeben.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 3: EL Browseranzeige[24]
5. Scoped Variables
Nachdem die Expression Language und Ihre Merkmale erläutert wurden, soll nun gezeigt werden, wie diese in JSTL 1.1 eingebunden ist. Hierfür wurde das Konzept der Scoped Variables eingeführt. Dies sind Objekte, welche in Gültigkeitsbereichen gespeichert werden und innerhalb der Ausdrücke als Top-Level-Objekte ansprechbar sind. Sie werden mit der Methode PageContext.findAttribute() angesprochen und stehen einer Web-Anwendung in den Gültigkeitsbereichen page, request, session und application zur Verfügung.[25]
Wird z. B. eine Variable angelegt, kann diese nur durch das PageContext-Objekt angesprochen werden.[26]
Codebeispiel:
<c:set var="meineVariable" value="15" scope="request" />
<%=pageContext.findAttribute("meineVariable") %>
Weiter gibt es einige Objekte, welche von der Implementierung direkt angesprochen werden, also ständig als Top-Level-Objekte verfügbar sind. Diese werden auch als implizierte Objekte bezeichnet.[27]
Hierzu gehören:
pageContext, pageScope, requestScope, sessionScope, applicationScope,
param, paramValues, header, headerValues, cookie, initParam.[28]
Diese Objekte können jederzeit durch die Ausdruckssprache angesprochen werden.
6. Versionen und Varianten der JSTL
Die JSP Standard Tag Library liegt mittlerweile in zwei Versionen vor. Die erste Version (JSTL 1.0) wurde im Jahr 2002 von der JSR52, einer Expertengruppe innerhalb des Java Community Process (JCP), entwickelt.[29] Das Apache Taglibs Project entwickelte zeitgleich die Referenzimplementierung.[30] Sie wurde konzipiert für die Version JSP 1.2 und enthält 4 Taglib-Bibliotheken. Diese sind in zwei Varianten verfügbar:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 4: EL-basierte JSTL 1.0[31]
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 5: RT-basierte JSTL 1.0[32]
Der Unterschied beider Varianten besteht darin, das die EL-basierte JSTL 1.0 die Expression Language (EL) verwendet, die RT-basierte JSTL 1.0 hingegen mit Werten arbeitet, die zur Laufzeit über Skriptausdrücke erzeugt werden.[33]
[...]
[1] Vgl. Turau, Saleck, Lenz, S. 107.
[2] Vgl. ebenda, S. 107.
[3] Vgl. ebenda, S. 107.
[4] Vgl. Vonhoegen, S. 201.
[5] ebenda, S. 203.
[6] Vgl. WWW, Sun JSP 2.0, 22.10.05.
[7] Vgl. WWW, Sun J2SE 5.0, 22.10.05.
[8] Vgl. WWW, Sun J2SE 5.0 Documentation, 19.10.2005.
[9] Vgl. WWW, Jakarta Tomcat 5.5, 19.10.2005.
[10] Vgl. Seeboerger-Weichselbaum, Tomcat, S. 25/26.
[11] Vgl. Samaschke, Stark, S. 227.
[12] Vgl. WWW, Sun JWSDP, 22.10.05.
[13] Vgl. WWW, Jakarta JSTL 1.1, 22.10.05.
[14] Vgl. Seeboerger-Weichselbaum, JavaServer Pages, S. 623.
[15] Eigene Darstellung.
[16] Vgl. Roßbach, Holubek, Pöschmann, Röwekamp, Tabatt, S. 18.
[17] Vgl. WWW, Sun JavaBeans, 22.10.05.
[18] Vgl. Seeboerger-Weichselbaum, JavaServer Pages, S. 621.
[19] Vonhoegen, S. 201.
[20] Vgl. WWW, Sun JSTL 1.1 Reference, 22.10.05.
[21] Vgl. Bergsten, S. 68.
[22] Vgl. WWW, Sun EL, 22.10.05.
[23] Vgl. Turau, Saleck, Lenz, S. 108.
[24] Eigene Darstellung.
[25] Vgl. Turau, Saleck, Lenz, S. 117.
[26] Vgl. Vonhoegen, S. 202/203.
[27] Vgl. Turau, S. 58.
[28] Vgl. WWW, JSTL, 22.10.05.
[29] Vgl. Vonhoegen, S. 203.
[30] Vgl. ebenda, S. 203.
[31] Eigene Darstellung.
[32] Eigene Darstellung.
[33] Vgl. Vonhoegen, S. 205.
-
-
-
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X.