Inhaltsverzeichnis Apache Tomcat

Transcription

Inhaltsverzeichnis Apache Tomcat
Inhaltsverzeichnis
Apache Tomcat.....................................................................................................................................1
Tomcat Installation.......................................................................................................................... 2
Tomcat Administration.................................................................................................................... 2
Web-Applikationen..........................................................................................................................2
Eclipse-Plugins................................................................................................................................ 3
HelloWorld Web-Applikation......................................................................................................... 3
Fragen zum Nachschlagen/Googlen.....................................................................................................4
Praktische Aufgaben.............................................................................................................................4
Apache Tomcat
Der „Apache Tomcat“ wird als Servlet/JSP Container bezeichnet. Er ermöglicht es uns,
existierende und selbst implementierte Java-Servlets und Java Server Pages (JSP) auszuführen.
Als Servlets werden Java-Klassen bezeichnet, die in einem Servlet-Container ausgeführt werden
können, ähnlich den „normalen“ Java-Klassen, welche auf einem Client-Rechner ausgeführt
werden. Servlets haben allgemein die Aufgabe (bzw. werden dafür verwendet), HTTP-Anfragen
eines Webclients (Webbrowser) entgegenzunehmen und auszuwerten. Im „HelloWorld“-Beispiel
der Übung zur Veranstaltung besteht die Aufgabe des Servlets HelloWorld darin, den Request des
Webclient entgegenzunehmen, sowie den übermittelten Formular-Inhalt auszulesen (auszuwerten).
JSPs dienen allgemein dazu, HTML-Dokumente zu generieren. Theoretisch und praktisch können
HTML-Dokumente auch durch Servlets generiert werden. Der Vorteil von JSPs besteht einerseits in
der Möglichkeit, HTML-Dokumente wie bisher zu schreiben und diese Dokumente mit weiteren
Tags zu versehen, um den Inhalt der HTML-Dokumente dynamisch zu gestalten, wie im unten
stehenden Codebeispiel gezeigt. Dabei ist der HTML-Code blau und der JSP-Code rot dargestellt.
<%@ page language="java"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
<title>Hello World JSP</title>
</head>
<body>
<%
final String message =
(String)getServletContext().getAttribute("message");
%>
<%= message != null ? message : "" %>
<form name="MESSAGE_FORM" action="./HelloWorld" method="POST">
<input type="text" name="MITTEILUNG" />
<input type="submit" name="SUBMIT" value="SENDEN" />
</form>
</body>
</html>
Abbildung 1: Codebeispiel einer JSP-Datei
Ein zweiter Vorteil der Verwendung von JSPs besteht darin, eine Trennung von Programm-Logik –
diese wird durch Servlets realisiert – und Präsentation (das Aussehen einer Webseite) mittels JSP zu
erreichen. Würde man die Präsentation innerhalb eines Servlets programmieren, müsste man für
eventuelle Änderungen der Präsentation die Servlet-Klasse ändern, was in jedem Fall erneutes
kompilieren der betroffenen Klassen und eventuell erneutes deployen der Servlets zur Folge hätte.
Als dritter Vorteil der Trennung von Programm-Logik und Präsentation kann angesehen werden,
dass man die Präsentation (relativ) einfach auf verschiedene Ausgabe-Medien aufteilen kann. Man
kann sich vorstellen, dass eine Web-Applikation verschiedene Ausgaben für Standard-Webbrowser,
sowie auch Webbrowser auf Hendheld-Computern oder Mobiltelefonen erzeugt, ohne dabei
spezielle Anforderungen an die Programm-Logik zu stellen.
Tomcat Installation
Die Installation des Apache Tomcat unter Windows gestaltet sich relativ problemlos, da ein
Installations-Programm vorhanden ist. Bedenken sollte man, dass Leerzeichen in Pfaden in der
Java-Welt allgemein als problematisch anzusehen sind. Deshalb sollte der Installationspfad des
Tomcat keine Leerzeichen enthalten. Es empfiehlt sich, Leerzeichen durch „Unterstriche“ zu
ersetzen.
Tomcat Administration
Nach der Installation findet man im Tomcat-Verzeichnis verschiedene Unterordner.
Das Verzeichnis „conf“ im Installationsverzeichnis des Tomcat enthält unterschiedliche Dateien zur
Konfiguration des Containers, für Einstellungen zu Benutzer-Rechten und zum Ändern von
Logging-Einstellungen. Möchte man eine Web-Applikation in einem anderen Verzeichnis
außerhalb der Tomcat-Installation entwickeln – z.B unterhalb des Verzeichnisses public_html im
Linux/Unix-Home-Verzeichnis (oder auch unterhalb der Windows-“Eigene Dateien“) – so kann
man dies dem Container durch den unten abgebildeten Inhalt einer <contextname>.xml-Datei im
Verzeichnis /conf/Catalina/localhost mitteilen.
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="C:\Dokumente und Einstellungen\sszalowski\...\myServlets"
path="/sszalowski">
</Context>
Abbildung 2: Inhalt der sszalowski.xml im Verzeichnis /conf/Catalina/localhost
Web-Applikationen
Zu entwickelnde/installierende Web-Applikationen liegen unterhalb des Verzeichnisses „webapps“.
Dabei enthält normalerweise jedes Verzeichnis unterhalb von webapps je eine Web-Applikation.
Allen von uns entwickelten Web-Applikationen ist gemein, dass Sie eine bestimmte
Verzeichnisstruktur, sowie das Vorhandensein weniger Dateien aufweisen (müssen). Untere
Abbildung zeigt die minimale Verzeichnisstruktur einer Web-Anwendung.
Abbildung 3: Die Verzeichnisstruktur im Tomcat; beachte den Ordner WEB-INF und die darin
enthaltene web.xml
Eclipse-Plugins
Um mit Webanwendungen mit eclipse entwickeln, deployen und testen zu können, kann man sich
auf der eclipse-Webseite (www.eclipse.org) Plugins herunterladen und installieren. Zur Arbeit
sollten die J2EE Standard Tools (JST) und Web Standard Tools (WST) genügen. Diese zip-Dateien
sind – wenn nicht anders vorgegeben in das eclipse-Verzeichnis zu extrahieren und eclipse dann
neu zu starten.
Als Installations-Alternative kann auch das Callisto-Projekt gweählt werden. Dieses kann unter
www.eclipse.org/callisto heruntergeladen werden, verlangt allerdings nach der neusten eclipseInstallation (Version 3.2).
HelloWorld Web-Applikation
Die HelloWorld Web-Applikation soll verdeutlichen, wie Servlets und JSP innerhalb der TomcatServer-Anwendung zum Einsatz kommen können. Die Web-Applikation besteht aus einer JSP mit
dem Namen index.jsp im Verzeichnis /HelloWorld, einer Datei web.xml im Verzeichnis
/HelloWorld/WEB-INF und der Servlet-Klasse HelloWorld im Verzeichnis /HelloWorld/WEBINF/classes.
Eine Anfrage (request) eines Web-Clients wird durch die doGet() bzw. doPost()-Methode des
Servlets bearbeitet. Ist der request mittels HTTP-POST aufgetrteten, wird innerhalb der doPost()Methode der Request-Parameter „MITTEILUNG“ ausgelesen und in der Variable message
abgelegt. Anschließend wird message im ServletContext abgelegt.
Innerhalb der index.jsp kann auf message im ServletContext „zugegriffen“ werden und die zuvor
eingelesene Nachricht wird mit der Antwort (response) an den Client zurück gesendet.
Fragen zum Nachschlagen/Googlen
1. Welche Klasse sollte eine Servlet-Klasse erweiteren (davon erben)?
2. Welche Methode muss von einem Servlet sinnvoll implementiert werden, wenn es die
übermittelten Daten des folgenden Request auswerten möchte (doGet() oder doPost())?
Begründen Sie!
Request-URL: http://localhost:8080/myWebApp?name=Stefan&surname=Szalowski
3. Was ist der ServletContext?
4. Wann ist es sinnvoll, Daten im ServletContext abzulegen?
5. Gibt es noch andere Kontexte?
Praktische Aufgaben
1. Installieren Sie Apache Tomcat auf Ihrem Rechner!
2. Überprüfen Sie die korrekte Installation, indem Sie testen, ob Ihr Apache Tomcat mit einem
Webbrowser erreichbar ist!
3. Testen Sie die Web-Applikation „jsp-examples“! (Bei einer Standard-Installation sollten Sie
die Beispiele unter http://localhost:8080/jsp-examples aufrufen können.)
4. Überprüfen Sie, ob Sie auch die Tomcat-Dokumentation (Verzeichnis „webapps/tomcatdocs“) aufrufen können!
5. Wenn Ihre Installation erfolgreich war, können Sie sich unter http://tomcat.apache.org die
„Administration Web Application“ herunterladen und installieren. Nach der Installation
können Sie unter http://localhost:8080/admin versuchen, einen neuen Nutzer anzulegen.
Wenn Ihnen dies gelungen ist, sehen Sie sich die Datei tomcat-users.xml im Verzeichnis
„/conf“ Ihrer Tomcat-Installation an!
6. Welche Funktionalitäten bietet Ihnen das „Admin-Tool“ außerdem?