1 / 26

Einführung in Java-Servlets und Servlet-Engine Apache Tomcat

Wintersemester 2004 Lehrstuhl für Wirtschaftsinformatik Technische Universität München. Einführung in Java-Servlets und Servlet-Engine Apache Tomcat. Markus Ruppenthal. 23.11.204. Agenda. Was sind Servlets? Aufgaben eines Servlets Servlet-Container

ama
Download Presentation

Einführung in Java-Servlets und Servlet-Engine Apache Tomcat

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wintersemester 2004 Lehrstuhl für Wirtschaftsinformatik Technische Universität München Einführung in Java-Servlets und Servlet-Engine Apache Tomcat Markus Ruppenthal 23.11.204

  2. Agenda • Was sind Servlets? • Aufgaben eines Servlets • Servlet-Container • Überblick: Freie Desktop-Entwicklungsserver • Aufsetzen eines Apache Tomcat-Entwicklungsservers • Einrichtung von Apache Tomcat • Hinweise zur Nutzung von Apache Tomcat • Grundstruktur von Servlets • Lebenszyklus eines Servlets • Beispiel: Hello World • Literatur und Links

  3. Was sind Servlets? Servlets sind... • Java-Programme, die auf einem Web- oder Anwendungsserver ausgeführt werden • dienen der dynamischen Generierung von Webseiten / Webcontent • plattformunabhängig durch Verwendung der Java-Technologie • prinzipiell protokollunabhängig, werden allerdings meistens im Zusammenhang mit HTTP verwendet Client(Applets) Server(Servlets)

  4. Aufgaben eines Servlets Datenbank • Vom Client gesendete, explizite Daten lesen • Vom Browser implizit mit der HTTP-Anfrage gesendete Daten lesen • Ergebnisse generieren (mit Hilfe der in Java zur Verfügung stehenden Werkzeuge) • Konkrete Daten an den Client zurücksenden • Implizite Antwortdaten an den Client senden JDBC Java-Anwendung Request RMI ... Response Servlet Server (z.B. Webserver mit Servlet-Container) Client (Endanwender)

  5. Servlet-Container • Vorraussetzung für die Nutzung von Servlets:Vorhandensein eines Servlet-Containers (auch als Servlet-Engine bezeichnet) auf dem Server • Implementiert die API-Spezifikationen Servlet 2.3 (JSP 1.2) oder Servlet 2.4 (JSP 2.0) • Zu Entwicklungszwecken in der Regel als eigenständiger Desktop-Entwicklungsserver eingerichtet • Zum Deployment als Plug-In in einen Standard-Webserver integriert

  6. Überblick: Freie Desktop-Entwicklungsserver • Können kostenlos heruntergeladen und als eigenständige Webserver eingerichtet werden • Zum Teil ist auch die Nutzung als Plug-In für einen Standard-Webserver kostenlos • Beispiele für kostenfreie Desktop-Entwicklungsserver: • Apache Tomcat • Macromedia JRun • Caucho`s Resin • New Atlanta`s ServletExec • Jetty

  7. Aufsetzen einesApache Tomcat-Entwicklungsservers • Download der Binary von: http://jakarta.apache.org/tomcat • Binary entpacken • Tomcat einrichten(Alternativ: Download eines vorkonfigurierten Paketes von http://www.coreservlets.com/Apache-Tomcat-Tutorial/ ) • Server starten mit: [Tomcat-Pfad]\bin\startup.bat • Server stoppen mit: [Tomcat-Pfad]\bin\shutdown.bat

  8. Einrichtung von Apache Tomcat • JAVA_HOME-Variable setzen • Server-Port angeben • Neuladen von Servlets aktivieren • ROOT-Kontext aktivieren • Aufruf-Servlet einschalten • Grenze für den DOS-Speicher heraufsetzen • Einstellung des Classpath

  9. JAVA_HOME Die Variable JAVA_HOME setzt den Pfad zum obersten SDK Installationsverzeichnis. • Datei: [Tomcat-Pfad]\bin\catalina.bat || autoexec.bat • Zeile einfügen: set JAVA_HOME=[Pfad zu SDK] (z.B. C:\j2sdk1.4.1_01)

  10. Server-Port angeben Sofern Port 80 nicht von einem anderen Server belegt ist, bewirkt diese Änderung, dass bei Aufruf einer URL der Port nicht extra angegeben werden muss (z.B. http://127.0.0.1:8080/servlets-examples/RequestParamExample) • Datei: [Tomcat-Pfad]\conf\server.xml • Ändern des Ports auf den Standard-Port 80: <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />

  11. Neuladen des Servers aktivieren Für angeforderte Servlets überprüft der Server das Überarbeitungsdatum der Klassendatei und lädt solche Klassen neu, die seit dem letzten laden geändert wurden. • Datei: [Tomcat-Pfad]\conf\server.xml • Suchen nach <Host name="localhost" appBase="webapps„ ... • Unter diesem Block folgende Zeile einfügen: <DefaultContext reloadable="true"/>

  12. ROOT-Kontext aktivieren Aktiviert die Standardwebanwendung von Tomcat. Solange keine eigenen Webanwendungen in Tomcat eingerichtet wurden, kann diese Anwendung verwendet werden. In den Tomcat-Versionen 3, 4.0.1-4.0.3, in einigen Versionen von Tomcat 4.1, in Tomcat 5.0.20 und später sollte die Standardwebanwendung bereits aktiviert sein. • Datei: [Tomcat-Pfad]\conf\server.xml • Auskommentierung entfernen von <Context path="" docBase="ROOT" debug="0"/>

  13. Aufruf-Servlet einschalten Gestattet es, Servlets auszuführen, ohne vorher die Datei WEB-INF\web.xml der eigenen Webanwendung anpassen zu müssen. Kompilierte Servlets werden stattdessen nur im Verzeichnis WEB-INF\classes\ abgelegt und über die URL http://localhost/servlet/ServletName (bei der Standardwebanwendung) oder http://localhost/webAppPrefix/servlet/ServletName (bei selbst definierten Webanwendungen) gestartet. • Datei: [Tomcat-Pfad]\conf\web.xml • Auskommentierung entfernen von <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>

  14. Aufruf-Servlet einschalten • Datei: [Tomcat-Pfad]\conf\web.xml • Auskommentierung entfernen von <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> und von <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>

  15. Grenze für den DOS-Speicher heraufsetzen Eventuell notwendig bei Windows 98/ME und früheren Versionen. Bei einer Fehlermeldung wie „Kein Speicherplatz mehr im Umgebungsbereich“ müssen DOS-Speichereinstellungen für die Startup- und Shutdownskripte angepasst werden. • Rechter Mausclick auf [Tomcat-Pfad]\bin\startup.bat->Eigenschaften-> Speicher-> Auswahl ursprünglicher Umgebungsspeicher von Automatisch in 2816 oder mehr ändern.

  16. Einstellung des Classpath Servlets und JSP sind kein integraler Bestandteil von SDK. Durch Setzen des Classpath wird dem Java-Compiler der Ort der Servlet-Klassen mitgeteilt. Auch das aktuelle Verzeichnis >>.<< sollte in den Classpath aufgenommen werden, da andernfalls keine paketlosen Klassen kompiliert werden können. • Datei: autoexec.bat • Einfügen der Zeile: set CLASSPATH=.;[Tomcat-Pfad]\common\lib\servlet-api.jar; [Tomcat-Pfad]\common\lib\jsp-api.jar [Tomcat-Pfad] ist z.B. C:\apache\tomcat

  17. Testen des Tomcat-Servers • Ausführen von [Tomcat-Pfad]\bin\startup.bat startet den Server. • Eingabe der URL http://localhost/ sollte in etwa folgendes Ergebnis liefern:

  18. Hinweise zur Nutzung von Apache Tomcat • Im Ordner \bin befinden sich u.a. die Dateien zum Starten und Beenden des Servers (startup.bat und shutdown.bat) • Im Ordner webapps werden die Webanwendungen abgelegt • ROOT ist die Standardwebanwendung(hier können u.a. html- oder jsp-Dateien abgelegt und überhttp://localhost/Dateiname direkt im Browser aufgerufen werden) • Im Ordner \WEB-INF\classes werden die kompilierten Servlets einer Webanwendung abgelegt und über http://localhost/servlet/Servletname aufgerufen

  19. Grundstruktur von Servlets (1) • Servlets werden normalerweise von HttpServlet abgeleitet • Überschreiben die Methoden doGet() und doPost() • doGet() und doPost() nehmen jeweils 2 Parameter entgegen: • HttpServletRequest • ermöglicht Zugriff auf alle eingehenden Daten • HttpServletResponse • Ermöglicht die Spezifikation von ausgehenden Informationen • Beinhaltet den PrintWriter, mit dem Dokumentinhalt an den Client zurückgesendet werden kann • Lösen 2 Ausnahmen aus: • ServletException • IOException

  20. Grundstruktur von Servlets (2) • PrintWriter erfordert den import von java.io • HttpServlet erfordert den import von javax.servlet • HttpServletRequest / HttpServletResponse erfordern den import von javax.servlet.http

  21. Lebenszyklus eines Servlets

  22. Lebenszyklus eines Servlets (2) • Der Lebenszyklus eines Servlets im Detail: • Laden und instanziieren • Entweder beim Start des Servlet-Containers oder bei der ersten Anfrage • Initialisieren • Die init-Methode des Servlets wird aufgerufen • Hier kann das Servlet Initialisierungsaufgaben erledigen, z.B. eine Datenbankverbindung herstellen oder Konfigurationsdaten aus einer Datei einlesen

  23. Lebenszyklus eines Servlets (3) • Client-Anfragen bearbeiten • Die service-Methode des Servlets wird aufgerufen • Diese Methode überprüft den HTTP-Anfragetyp und leitet die Anfrage an die richtige Methode weiter, z.B. doGet, doPost • Servlet-Klasse wieder entladen • Der Servlet Container entscheidet, wann die Servlet-Instanz wieder aus dem Speicher entfernt wird • Vorher wird die Methode destroy aufgerufen

  24. Beispiel: Hello World import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!</h1>"); out.println("</body>"); out.println("</html>"); } }

  25. Ergebnis: Hello World

  26. Literatur und Links Brown, L.; Hall, M. (2004): Servlets und Java Server Pages. 2. Aufl., Markt und Technik Verlag, München 2004. o.V. (o.J.): The Jakarta Apache Project. In: http://jakarta.apache.org/tomcat/, zugegriffen am 21.11.2004. o.V. (o.J.): A Tutorial on Installing and Using Tomcat 4 or 5 for Servlet and JSP Development. In: http://www.coreservlets.com/Apache-Tomcat- Tutorial/ zugegriffen am 21.11.2004.

More Related