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

 << zurück
Java ist auch eine Insel von Christian Ullenboom
Programmieren für die Java 2-Plattform in der Version 5
Java ist auch eine Insel

Java ist auch eine Insel
5., akt. und erw. Auflage
1454 S., mit CD, 49,90 Euro
Galileo Computing
ISBN 3-89842-747-1
gp Kapitel 17 Servlets und Java Server Pages
  gp 17.1 Dynamische Web-Seiten und Servlets
    gp 17.1.1 Was sind Servlets?
    gp 17.1.2 Was sind Java Server Pages?
    gp 17.1.3 Vorteil von JSP/Servlets gegenüber CGI-Programmen
  gp 17.2 Vom Client zum Server und wieder zurück
    gp 17.2.1 Der bittende Client
    gp 17.2.2 Welche Form von Antwort erzeugt ein Web-Server?
    gp 17.2.3 Wer oder was ist MIME?
  gp 17.3 Servlets und JSPs entwickeln und testen
    gp 17.3.1 Servlet-Container
    gp 17.3.2 Web-Server mit Servlet-Funktionalität
  gp 17.4 Java Server Pages in Tomcat und Eclipse
    gp 17.4.1 Download und Installation
    gp 17.4.2 Ablageort für eigene JSP-Seiten
    gp 17.4.3 Web-Applikationen
    gp 17.4.4 Zuordnung von Web-Applikationen zu physikalischen Verzeichnissen
  gp 17.5 Skript-Elemente
    gp 17.5.1 Scriptlets
    gp 17.5.2 Ausdrücke
    gp 17.5.3 Deklarationen
    gp 17.5.4 Kommentare
    gp 17.5.5 Quoting
    gp 17.5.6 Entsprechende XML-Tags
  gp 17.6 Implizite Objekte
  gp 17.7 Was der Browser mit auf den Weg gibt – HttpServletRequest
    gp 17.7.1 Verarbeiten der Header
    gp 17.7.2 Hilfsfunktion im Umgang mit Headern
    gp 17.7.3 Übersicht der Browser-Header
  gp 17.8 Formulardaten
  gp 17.9 Das HttpServletResponse-Objekt
    gp 17.9.1 Automatisches Neuladen
    gp 17.9.2 Seiten umlenken
  gp 17.10 JSP-Direktiven
    gp 17.10.1 page-Direktiven im Überblick
    gp 17.10.2 include-Direktive
    gp 17.10.3 Mit JSPs Bilder generieren
  gp 17.11 Aktionen
    gp 17.11.1 Aktion include
    gp 17.11.2 Aktion forward
    gp 17.11.3 Aktion plugin
  gp 17.12 Beans
    gp 17.12.1 Beans in JSP-Seiten anlegen, Attribute setzen und erfragen
    gp 17.12.2 Der schnelle Zugriff auf Parameter
  gp 17.13 Kleine Kekse: die Klasse Cookies
    gp 17.13.1 Cookies erzeugen und setzen
    gp 17.13.2 Cookies vom Servlet einlesen
    gp 17.13.3 Kleine Helfer für Cookies
    gp 17.13.4 Cookie-Status ändern
    gp 17.13.5 Langlebige Cookies
  gp 17.14 Sitzungsverfolgung (Session Tracking)
    gp 17.14.1 Das mit einer Sitzung verbundene Objekt HttpSession
    gp 17.14.2 Werte mit einer Sitzung assoziieren und auslesen
    gp 17.14.3 URL-Rewriting
    gp 17.14.4 Zusätzliche Informationen
  gp 17.15 Tag-Libraries
    gp 17.15.1 Standard Tag Library (JSTL)
    gp 17.15.2 Jakarta Taglibs Project
  gp 17.16 Servlets
    gp 17.16.1 Servlets compilieren
    gp 17.16.2 Die Servlets in das classes-Verzeichnis
    gp 17.16.3 Servlet-Mapping
  gp 17.17 Der Lebenszyklus eines Servlets
    gp 17.17.1 Initialisierung in init()
    gp 17.17.2 Abfragen bei service()
    gp 17.17.3 Mehrere Anfragen beim Servlet und die Thread-Sicherheit
    gp 17.17.4 Das Ende eines Servlets
  gp 17.18 Das HttpServletResponse-Objekt
    gp 17.18.1 Wir generieren eine Web-Seite
    gp 17.18.2 Binärdaten senden
    gp 17.18.3 Noch mehr über Header, die der Server setzt
  gp 17.19 Objekte und Dateien per POST verschicken
    gp 17.19.1 Datei-Upload
  gp 17.20 Servlets und Sessions
  gp 17.21 Weiterleiten und Einbinden von Servlet-Inhalten
  gp 17.22 Inter-Servlet-Kommunikation
    gp 17.22.1 Daten zwischen Servlets teilen
  gp 17.23 Internationalisierung
    gp 17.23.1 Die Länderkennung des Anfragers auslesen
    gp 17.23.2 Länderkennung für die Ausgabe setzen
    gp 17.23.3 Westeuropäische Texte senden
  gp 17.24 Tomcat: Spezielles
    gp 17.24.1 Tomcat als Service unter Windows NT ausführen
    gp 17.24.2 Interessante Links zum Thema Servlets/JSP


Galileo Computing

17.4 Java Server Pages in Tomcat und Eclipsdowntop

Jeder Server hat natürlich unterschiedliche Vorgehensweisen bei der Installation und beim Einbinden von Servlets und Verzeichnissen. Wir halten uns hier an die Implementierung von Tomcat in der Version 5.


Galileo Computing

17.4.1 Download und Installation  downtop

Der Tomcat-Server liegt unter http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi als komprimiertes Archiv oder als .exe für Windows mit Installer zum Laden bereit. Wir entscheiden uns für Windows und finden etwa das Installationsprogramm jakarta-tomcat-5.5.9.exe.

Während der Installation fragt Tomcat nach den Komponenten, die zu installieren sind. Normal reicht hier aus. Full installiert einen Windows-Service, der es erlaubt, Tomcat direkt zu starten, wenn Windows startet. Auch wird der Quellcode mit installiert. Im nächsten Schritt ist ein Installationsverzeichnis zu wählen. Der Server schlägt bei einer deutschen Windows-Version C:\Programme\Apache Software Foundation\Tomcat 5.5 vor. Das soll O.K. sein. Der nächste Dialog fragt noch nach der Port-Nummer (Standard 8080) sowie nach dem Benutzernamen (admin) und dem Passwort für den Tomcat-Manager, aber der Dialog kann mit Next bestätigt werden. Im folgenden Dialog fragt der Installer nach einem Pfad zu einer JRE. Mit Install ist die Installation abgeschlossen. Ein Abschlussdialog gibt die Möglichkeit, Tomcat gleich zu starten. Warum nicht?

Ein Blick im Browser auf die lokale Adresse http://localhost:8080/ zeigt die Tomcat-Startseite. Hier finden sich Beispiele und die APIs für das Paket.

Starten und Enden

Im Startmenü (Start, Programme, Apache Tomcat 5.5) finden sich Eintrage auf weitere Programme und Webseiten. Dort kann Tomcat gestartet werden. Läuft Tomcat, so erzeugt er ein Icon in der Icon-Tray. Dort lässt sich Tomcat beenden.

Konfiguration

Nach der Installation von Tomcat liegen im bei der Installation angegebenen Verzeichnis (etwa C:\Programme\Apache Software Foundation\Tomcat 5.5) diverse Unterverzeichnisse. Im Unterverzeichnis conf/ liegt die XML-Datei server.xml, die wichtigste Konfigurationsdatei für den Server. Hier lässt sich beispielsweise der Port anpassen; ohne Veränderung der Voreinstellungen installiert sich der Web-Server auf dem lokalen Rechner auf Port 8080.


Galileo Computing

17.4.2 Ablageort für eigene JSP-Seiten  downtop

Tomcat definiert zwei Teilprojekte mit den Namen Catalina und Jasper. Catalina ist für Servlets zuständig und Jasper ist der Compiler, der Java Server Pages in Servlets übersetzt. Jasper ist selbst ein Servlet. Bei einer Installation sind beide Teile aktiv.

Unsere eigenen JSP-Seiten wollen wir zuerst in ein Unterverzeichnis direkt unter dem Hauptpfad setzen – dann müssen wir nicht an eine Konfigurationsdatei gehen. Die Hauptseite, die bei http://localhost:8080/ im Browser bezogen wird, befindet sich unter

C:\Programme\Apache Software Foundation\Tomcat 5.5\webapps\ROOT\index.jsp

Wir wollen unter ROOT ein Verzeichnis jsp erstellen und unsere Skripte dort ablegen. Beginnen wir mit einer sehr einfachen JSP:

Listing 17.3   datum.jsp

<html><body>
Hallo NutzerWir haben heute
<%= new java.util.Date() %>.
</body></html>

Befindet sich die Datei datum.jsp im Verzeichnis jsp, dann lässt sich im Browser die URL

http://localhost:8080/jsp/datum.jsp

eingeben. Anschließend übersetzt Jasper das JSP in ein Servlet und führt es aus.

Im Browser zeigt sich etwa:

Hallo NutzerWir haben heute Thu Jul 28 13:59:46 CEST 2005.

Dass unsere JSPs unter ROOT liegen ist zwar praktisch, aber unprofessionell. Wir sollten sie in ein anderes Verzeichnis legen. So können wir ohne Schwierigkeiten unsere Projekte weitergeben und müssen uns auch bei einer Neuinstallation von Tomcat keine Sorgen machen. Dafür ist jedoch etwas Konfigurationsaufwand verbunden. Vereinfachen können wir uns die Arbeit, indem wir ein Eclipse-Plugin nutzen.


Galileo Computing

17.4.3 Web-Applikationen  downtop

Eine Web-Applikation definiert die logische Struktur der Elemente, die zu einer Webanwendung gehören. Insbesondere sind diese Elemente statische Web-Seiten, Bilder und Medien, JSP-Seiten und Servlets, externe Bibliotheken, Tag-Libraries, Beans und Applets. Jeder Web-Applikation wird ein eigenes Verzeichnis zugeordnet, in dem es eine vordefinierte Verzeichnisstruktur gibt. Von besonderer Bedeutung ist das Unterverzeichnis WEB-INF, das auch Tomcat für seine beiden Beispiel-Web-Applikationen nutzt:

gp  C:\Programme\Apache Software Foundation\Tomcat 5.5\webapps\tomcat-docs\WEB-INF
gp  C:\Programme\Apache Software Foundation\Tomcat 5.5\webapps\ROOT\WEB-INF

In WEB-INF stehen Objekte, die der Web-Server nicht nach außen freigibt, etwa Servlets – obwohl die Servlets selbst natürlich nutzbar sind. Des Weiteren findet sich in WEB-INF eine Datei web.xml, der so genannte Deployment-Descriptor. Unter WEB-INF können zusätzlich die Unterverzeichnisse classes und lib definiert werden.

gp  classes. Das Verzeichnis nimmt übersetzte Java-Klassen auf. Das können Servlets oder Java-Beans sein. Der Servlet-Container nimmt die Objekte automatisch in den Suchpfad mit auf.
gp  lib. Im Unterverzeichnis lib stehen Jar-Archive, die ebenfalls in den Suchpfad aufgenommen werden.

Tomcat beginnt mit der Suche nach Klassen im Verzeichnis WEB-INF/classes und sucht, falls die Klassen dort nicht zu finden waren, anschließend in WEB-INF/lib weiter. Unter <TOMCAT>/lib können applikationsübergreifende Bibliotheken abgespeichert sein.


Beispiel   So kann die Verzeichnisstruktur einer Web-Applikation aussehen:

index.html seite.jsp pics/lustig.gif WEB-INF/web.xml WEB-INF/schleifen.tld WEB-INF/lib/meins.jar WEB-INF/class/erstesServlet.class WEB-INF/classes/com/javatutor/p/Bean.class



Galileo Computing

17.4.4 Zuordnung von Web-Applikationen zu physikalischen Verzeichnissen  toptop

Wer nicht mit einem Eclipse-Plugin arbeiten möchte, muss die Datei conf/server.xml im Tomcat-Verzeichnis modifizieren. Dort ist ein Eintrag eingebunden, der genau den Pfad auf unser Projekt angibt, sodass Tomcat einer Web-Applikation ein Verzeichnis zuordnen kann. (Ein Plugin nimmt diese Arbeit ab.) Die Zuordnung geschieht dabei mit einem XML-Eintrag Context im Host-Element, der unter http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/context.html genau beschrieben ist.


Beispiel   Wer die Beispiele des Buches ausprobieren möchte, der kann für sie einen Kontext einrichten.
<Context path="/jt"
         docBase="C:/JavaBook/programme/17_ServletsJSP"
         reloadable="true" />
Nach der Änderung muss Tomcat neu gestartet werden; am einfachten über die Tray mittels Configure | Stop und Start. Nach dem Start ist unter http://localhost:8080/manager/html unsere Applikation aufgeführt. Das erste JSP datum lässt sich dann unter http://localhost:8080/jt/datum.jsp ausprobieren. Tomcat hat gelegentlich Probleme mit Verzeichnissen auf Shared-Laufwerken.

 << zurück




Copyright © Galileo Press GmbH 2005
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 GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de