210 likes | 337 Views
Sommersemester 2004 Lehrstuhl für Wirtschaftsinformatik Technische Universität München. Servlet-Container Apache Tomcat. Li Sun & Christian Ertl. 25.Mai 2004. Agenda. Definitionen Entwicklung Java Server Pages (JSP) Architektur Installation Verzeichnisse Konfiguration
E N D
Sommersemester 2004 Lehrstuhl für Wirtschaftsinformatik Technische Universität München Servlet-Container Apache Tomcat Li Sun & Christian Ertl 25.Mai 2004
Agenda • Definitionen • Entwicklung • Java Server Pages (JSP) • Architektur • Installation • Verzeichnisse • Konfiguration • Literatur und Links
Definitionen • Jakarta Tomcat: Referenzimplementierung der Servlet-API und JSP-API unter Apache-Lizenz • Andere Container: • Jetty • IBM Webspehre Application Server • Macromedia JRun • Stammt von der originalen Servlet- und JSP-Implementierung ab, die Sun der Apache Software Foundation übergab (Tomcat 3)
Definitionen • Catilina: Servlet-Container ab Tomcat 4 • Jasper: kompiliert JSPs in Servlets • Tomcat funktioniert alleine (z.B. bei der Entwicklung, wo kein Bedürfnis nach Geschwindigkeit und Transaktionsentwicklung besteht) • Normalerweise in Kombination mit einem Webserver mit Servlet- und JSP-Unterstützung (meist Apache Webserver)
Defintionen • Servlet-Container: • Verwaltet Kommunikation nach außen • Nimmt Anfragen vom Webserver entgegen, wählt Servlet aus und leitet die Eingaben an das Servlet weiter und gibt dessen Ausgabe an den Webserver zurück • Verwaltet den Lebenszyklus des Servlets
Entwicklung • Tomcat 3: Servlet 2.2 und JSP 1.1 • Tomcat 3.1-3.3 wurden gegenüber der ursprünglichen Implementierung intern umgebaut und modularisiert • Tomcat 4 implementiert einen neuen Serlvet-Container mit komplett neuer Architektur (aktuell 4.1) • Tomcat 4: Servlet 2.3 und JSP 1.2 • Tomcat 5: Servlet 2.4 und JSP 2.0
Java Server Pages (JSP) • Statt Servlet, das sich um HTML-Ausgabe kümmert, HTML-Seite mit eingebauten Java-Code, Beispiel: <html><body> Hallo Nutzer. Wir haben heute <%= new java.util.Date() %>. </body></html> • JSP-Seiten werden (bei Tomcat durch das Servlet Jasper) in Servlets übersetzt • <% %> enthält einfachen Java-Code, <%! %> Deklarationen, <%= Ausdruck %> wird in out.println(Ausdruck) umgewandelt,
Architektur Container-Struktur: • Server: Repräsentant für die JVM-Instanz, in der Tomcat arbeitet (überwacht einen Port auf Shutdown-Kommando, Standard: SHUTDOWN auf Prot 8005), kann mehrere Services beherbergen • Service kann über mehrere Konnektoren erreichbar sein • Konnektor: für die Kommunikation mit der Außenwelt, überwacht einen Port, erzeugt ein passende Request/Tesponse-Paar und leitet es weiter
Architektur • Engine: findet den passenden Bearbeiter für die Anfrage und leitet es an den zuständigen Host weiter • Host: entscheidet, an welchen Context das Request/Response-Paar weitergeleitet wird (mehrere „virtuelle Hosts“ können verwendet werden, um mehrere Websites auf einem Server zu betreiben) • Bei Add-On-Betrieb kann Engine und Host entfallen, Context-Zuordnung durch den Webserver • Context: bestimmt das Servlet und stellt Anfrage zu
Installation • Quellcode und Binärdateien unter http://jakarta.apache.org/tomcat erhältlich • Für Windows neben Archiv auch Installer verfügbar • Normal-Installation sollte ausreichen (kein Quellcode und Windows-Service installiert) • Möglichkeit, Port (Standard 8080) und Passwort einzurichten
Installation • Umgebungsvariablen JAVA_HOME und CATALINA_HOME müssen gesetzt werden • Start erfolgt durch Aufruf von startup.bat oder startup.sh im Unterverzeichnis bin • Anschließend ist die Startseite unter http://localhost:8080 erreichbar (Tomcat Administation Tool und Manager, Dokumentation, Servlet/JSP-Beispiele) • Beendet wird Tomcat durch das Skript shutdown • Unter Windows auch als Windows-Service
Verzeichnisse • /server/ : server-eigene Archive • /lib/ : Archive von Webanwendungen • /common/lib/ : Archive, die beiden zur Verfügung stehen • classes/ : Erweiterung und Patches • /work/ : Klassen übersetzter JSPs • /webapps/ : Speicherort der Webapplikationen • /conf/ : Konfigurationsdateien
Benutzer-Konfiguration <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> <user username="admin" password="" roles="admin,manager"/> </tomcat-users>
Server-Konfiguration: server.xml • Aufbau der Tomcat-Instanz • <Context path = "/myapp" docbase="myapp" debug="0" reloadable="true" /> Aufruf: http://localhost/myapp/
Servlet-Konfiguration: web.xml <servlet> <servlet-name>invoker</servlet-name> <servlet-class>org.apache.catalina.servlets.InvokerServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>
web.xml <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> • Kann durch WEB-INF/web.xml erweitert bzw. überschrieben werden • Definiert Angaben wie Timeouts, MIME-Types
Eclipse-Plugin von Sysdeo • Erhältlich unter http://www.sysdeo.com/eclipse/tomcatPlugin.html • In das Verzeichnis plugin von Eclipse • Window->Customize Perspective...->Others: Tomcat aktivieren • Window->Preferences->Tomcat: Tomcat-Version, -Pfad, JDK angeben • File->New->Project: Tomcat Project auswählen
Literatur und Links • http://jakarta.apache.org/tomcat/ • http://www.galileocomputing.de/ • http://www.web-container.com/ • http://www.fhwedel.de/~si/seminare/ws02/Ausarbeitung/a.tomcat/tomcat0.htm