Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Mathematisches
6 Eigene Klassen schreiben
7 Angewandte Objektorientierung
8 Exceptions
9 Generics, innere Klassen
10 Die Klassenbibliothek
11 Threads und nebenläufige Programmierung
12 Datenstrukturen und Algorithmen
13 Raum und Zeit
14 Dateien und Datenströme
15 Die eXtensible Markup Language (XML)
16 Grafische Oberflächen mit Swing
17 Grafikprogrammierung
18 Netzwerkprogrammierung
19 Verteilte Programmierung mit RMI und Web–Services
20 JavaServer Pages und Servlets
21 Applets
22 Midlets und die Java ME
23 Datenbankmanagement mit JDBC
24 Reflection und Annotationen
25 Logging und Monitoring
26 Sicherheitskonzepte
27 Java Native Interface (JNI)
28 Dienstprogramme für die Java-Umgebung
Stichwort

Download:
- ZIP, ca. 14,1 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java ist auch eine Insel (8. Auflage) von Christian Ullenboom
Programmieren mit der Java Standard Edition Version 6
Buch: Java ist auch eine Insel (8. Auflage)

Java ist auch eine Insel (8. Aufl.)
8., aktual. Auflage, geb., mit DVD
1.475 S., 49,90 Euro
Galileo Computing
ISBN 978-3-8362-1371-4
Pfeil 20 JavaServer Pages und Servlets
Pfeil 20.1 Dynamisch generierte Webseiten
Pfeil 20.1.1 Was sind Servlets?
Pfeil 20.1.2 Was sind JavaServer Pages?
Pfeil 20.2 Servlets und JSPs mit Tomcat entwickeln
Pfeil 20.2.1 Servlet-Container
Pfeil 20.2.2 Entwicklung der Servlet-/JSP-Spezifikationen
Pfeil 20.2.3 Webserver mit Servlet-Funktionalität
Pfeil 20.2.4 Tomcat installieren
Pfeil 20.2.5 Ablageort für eigene JSPs
Pfeil 20.2.6 Web-Applikationen
Pfeil 20.2.7 Zuordnung von Web-Applikationen zu physikalischen Verzeichnissen
Pfeil 20.2.8 Web-Projekt mit Eclipse IDE for Java EE Developers entwickeln
Pfeil 20.3 Statisches und Dynamisches
Pfeil 20.3.1 Statischer Template-Code
Pfeil 20.3.2 Dynamische Inhalte
Pfeil 20.3.3 Kommentare
Pfeil 20.4 Die Expression Language (EL)
Pfeil 20.4.1 Operatoren der EL
Pfeil 20.4.2 Literale
Pfeil 20.4.3 Implizite EL-Objekte
Pfeil 20.5 Formulardaten
Pfeil 20.5.1 Einen Parameter auslesen
Pfeil 20.5.2 HTML-Formulare
Pfeil 20.6 Auf Beans zurückgreifen
Pfeil 20.6.1 Beans in JSPs anlegen
Pfeil 20.6.2 Properties einer Bean im EL-Ausdruck erfragen
Pfeil 20.6.3 Properties mit <jsp:setProperty> setzen
Pfeil 20.6.4 Bean-Klasse zum Testen von E-Mail-Adressen
Pfeil 20.6.5 Parameterwerte in Bean übertragen
Pfeil 20.7 JSP-Tag-Libraries
Pfeil 20.7.1 Standard Tag Library (JSTL)
Pfeil 20.8 Einbinden und Weiterleiten
Pfeil 20.8.1 Einbinden von Inhalten
Pfeil 20.8.2 Forward und Redirect
Pfeil 20.8.3 Applets einbinden
Pfeil 20.9 Scripting-Elemente in JSPs
Pfeil 20.9.1 Scriptlets
Pfeil 20.9.2 JSP-Ausdrücke
Pfeil 20.9.3 JSP-Deklarationen
Pfeil 20.9.4 Quoting
Pfeil 20.9.5 Entsprechende XML-Tags
Pfeil 20.9.6 Implizite Objekte für Scriptlets und JSP-Ausdrücke
Pfeil 20.10 JSP-Direktiven
Pfeil 20.10.1 page-Direktiven im Überblick
Pfeil 20.10.2 Mit JSPs Bilder generieren
Pfeil 20.11 Sitzungsverfolgung (Session Tracking)
Pfeil 20.11.1 Lösungen für Sitzungsverfolgung
Pfeil 20.11.2 Auf Session-Dateien zurückgreifen
Pfeil 20.12 Servlets
Pfeil 20.12.1 Servlets compilieren
Pfeil 20.12.2 Servlet-Mapping
Pfeil 20.12.3 Der Lebenszyklus eines Servlets
Pfeil 20.12.4 Mehrere Anfragen beim Servlet und die Thread-Sicherheit
Pfeil 20.12.5 Servlets und Sessions
Pfeil 20.12.6 Weiterleiten und Einbinden von Servlet-Inhalten
Pfeil 20.13 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

20.8 Einbinden und Weiterleiten Zur nächsten ÜberschriftZur vorigen Überschrift


Galileo Computing - Zum Seitenanfang

20.8.1 Einbinden von Inhalten Zur nächsten ÜberschriftZur vorigen Überschrift

Viele JSPs setzen sich aus immer wiederkehrenden Teilen zusammen, etwa Copyright-Informationen, Kopf- und Fußzeile. Diese Teile möchten Designer nicht in jedes Template integrieren, sondern einbinden, um Änderungen der Teile für alle Oberseiten zu erreichen. Auch Entwickler können den Einbinde-Mechanismus nutzen, um etwa andere Skripte, TagLibs, Bean-Definitionen einzubinden.

Der JSP-Standard sieht zum Einbinden Möglichkeiten vor:

  • Include-Direktive: Fügt den Inhalt der Datei direkt (statisch) in die JSP ein. Das Tag ist <jsp:directive.include>.
  • Include-Action: Die JSP-Engine ruft zur Laufzeit die Unterdatei auf, führt sie aus und fügt das Ergebnis in die Ausgabe-Seite ein. Die eingebundene Seite kann sich daher ändern. Das Tag ist <jsp:include>.

Des Weiteren gibt es eine dritte Möglichkeit, über die JSTL auch Inhalte aus anderen Webseiten einzubinden.

Die Include-Direktive <jsp:directive.include>

Die Include-Direktive <jsp:directive.include> fügt den Inhalt einer Datei direkt in die JSP ein. Die Datei kann eine HTML-Datei, eine Text-Datei oder eine andere JSP sein. JSP-Elemente in der eingefügten Datei werden ausgeführt.

<jsp:directive.include file="copyright.html" %>

Der Dateiname wird relativ zum aktuellen Dokument aufgelöst.

<jsp:directive.include file="inc/header.jsp" />

Wird dem Dateipfad ein Schrägstrich vorangestellt, sucht die JSP-Engine den Anfang des Pfades im Wurzelverzeichnis des aktuellen Web-Kontextes.


Hinweis Da die Include-Seite vor der Übersetzung der JSP in ein Servlet eingebunden wird, lassen sich durch Fallunterscheidungen zur Laufzeit keine unterschiedlichen Seiten einbinden. In den Unterseiten lässt sich aber auf deklarierte Variablen der Oberseite zugreifen, genauso wie auf lokale Variablen, die vor include definiert wurden.


Die Include-Aktion <jsp:include>

Anders als bei der Include-Direktive wird bei der Include-Aktion <jsp:include> der Code der eingefügten Datei nicht in die Hauptseite kopiert. Die JSP-Engine wertet zur Laufzeit den Ausdruck für den Dateinamen aus und fügt das Ergebnis in die Ausgabe der Hauptseite ein. Damit kann – anders als bei der Include-Direktive – sich der Ausdruck dynamisch aus Zuständen ergeben.

<%@ taglib prefix="c" uri="/WEB-INF/tld/c.tld" %> 
<c:set var="flag" value="false" /> 
<jsp:include page='${ flag ? "yes.html" : "no.html" }' flush="true" />

Falls der Dateiname statisch bekannt ist, hat die Include-Direktive <jsp:directive.include> natürlich den Vorteil, dass die Einbindung nicht zur Laufzeit vorgenommen werden muss. Das hebt die Geschwindigkeit.

Importieren beliebiger Inhalte mit <c:import>

Es binden <jsp:directive.include> und <jsp:include> zwar Inhalte wie JSPs oder Web-Fragmente ein, aber zwei Anforderungen erfüllen sie nicht:

  • Daten aus beliebigen Quellen einzubinden
  • Daten in Zwischenpuffern zu halten und nicht direkt in die Ausgabe zu schreiben

Die Core-Tags der JSTL definieren <c:import>, mit dem Daten von jeder Quelle kommen können und nicht unbedingt in die Ausgabe geschrieben werden müssen.

<c:import url="http://tutego.de/aufgaben/bond.txt" /> 
<c:import url="ftp://ftp.oreilly.com/pub/README.ftp" /> 
<c:import var="footer" url="/footer.jsp" />

Im letzten Beispiel legt <c:import> den Inhalt der Datei footer.jsp in die Variable footer. Später lässt sich die Variable mit ${footer} ansprechen und verarbeiten.


Galileo Computing - Zum Seitenanfang

20.8.2 Forward und Redirect Zur nächsten ÜberschriftZur vorigen Überschrift

Erfragt ein Anwender eine JSP, kann es möglich sein, dass er diese Seite nicht besuchen darf oder kann.

  • Waren zum Beispiel die Anmeldedaten beim Login falsch, muss er zurückgebracht werden auf die Ursprungsseite.
  • Ist die Seite umgezogen, so soll der Client auf eine neue Seite gebracht werden.

Für Weiterleitungen bieten sich zwei Möglichkeiten an:

  • <jsp:forward>. Der interne Forward zu einer neuen Seite in der Web-Applikation.
  • <c:redirect>. Ein HTTP-Redirect zur Weiterleitung.

Aktion <jsp:forward>

Die Aktion <jsp:forward> leitet die Anfrage an eine andere Seite der Web-Applikation weiter.

<jsp:forward page="neueSeite.jsp" />

Wenn das <jsp:forward> mitten in der JSP steht, wird die bisher erzeugte Ausgabe verworfen und nicht mehr angezeigt. Auch der Rest des JSPs wird dann nicht mehr ausgeführt. Die Angabe der URL ist wieder relativ.

Redirect

Anders als ein Forward, wo intern der Servlet-Container die Weiterleitung vornimmt und der Anwender in seinem Browser davon nichts mitbekommt, gibt es HTTP-Redirects.

<c:redirect url="http://tutego.de" />

Das Servlet setzt beim Redirect den Content-Type auf »text/html«, setzt den Statuscode auf 302 und einen Header namens »Location«. Technisch gesehen ist damit eine Umlenkseite eine ganz normale Webseite. Kommt sie jedoch beim Browser an, so erkennt er am Statuscode, dass er eine neue Seite beziehen muss. Damit ist das Umlenken eine Fähigkeit des Browsers und nicht des Servers. Nach der Umleitung steht der Ort der neuen Seite in der URL-Zeile des Browsers.


Galileo Computing - Zum Seitenanfang

20.8.3 Applets einbinden topZur vorigen Überschrift

Die Aktion <jsp:plugin> bindet ein Applet ein. Der Servlet-Container kann mit Hilfe des HTTP-Headers user-agent überprüfen, ob der Client Applets auszuführen in der Lage ist. Wenn nicht, wird ein angegebener Hilfetext eingebunden. Die Syntax von <jsp:plugin> erklärt http://java.sun.com/products/jsp/tags/syntaxref.fm12.html.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






<< zurück
  Zum Katalog
Zum Katalog: Java ist auch eine Insel





Java ist auch eine Insel
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Tipp
Zum Katalog: Coding for Fun





 Coding for Fun


 Buchempfehlungen
Zum Katalog: Objektorientierte Programmierung





 Objektorientierte
 Programmierung


Zum Katalog: Einstieg in Eclipse 3.4






 Einstieg in
 Eclipse 3.4


Zum Katalog: Java 6 lernen mit Eclipse






 Java 6 lernen
 mit Eclipse


Zum Katalog: NetBeans Platform 6






 NetBeans
 Platform 6


Zum Katalog: Java und XML






 Java und XML


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: C++ von A bis Z






 C++ von A bis Z


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de