Advanced   Java   Services Servlets Back Next Up Home


Was sind Servlets

Servlets are to servers what Applets are to browsers.

Dieser lapidare Satz aus einem Sun Tutorial ist zwar richtig, aber vielleicht doch noch erklärungsbedürftig. Servlets sind (in der Regel) nichtgraphische Javaprogramme, die von einem ServletContainer gestartet werden und Anfragen eines Client (meist eines Browsers) beantworten. Erhält ein WebServer eine Anfrage an ein Servlet, so leitet er diese Anfrage an den Servletcontainer weiter. Der Servletcontainer sorgt nun dafür, daß das Servlet abläuft. Ein Servlet hat alle Rechte einer Applikation und kann etwa eine Datenbankverbindung aufbauen, eine Abfrage nach Vorgabe des Client starten und die Ergebnisse als HTML-Dokument an den WebServer geben, der dieses dann an den Client zurückschickt. Mit anderen Worten, Servlets verstehen CGI und können das gleiche wie etwa in Perl geschriebene CGI-Skripts.


Warum also sollte man sie verwenden ?

Perl ist eine Interpretersprache und dementsprechend langsam, Servlets erreichen zwar nicht die Performance von ausführbaren Programmen, aber haben in der Regel eine deutlich bessere Performance als Scriptsprachen. Servlets werden in Java geschrieben und haben die klare und moderne Struktur einer objektorientierten Sprache. Die Servletklassen kapseln die CGI-Schnittstelle in Klassen und man dadurch einen eleganten Zugriff auf diese Schnittstelle. Servlets werden von einem ebenfalls in Java geschriebenen Servletcontainer verwaltet. Ein HTTP-Server leitet Anfragen an ein Servlet an den Servletcontainer weiter. Dieser startet das Servlet und das Servlet erzeugt eine HTML-Seite die der Servletcontainer an den Webserver weiteröeitet, der sie dann zum Client schickt. Da Java plattformunabhängig ist, sind Servlets leicht auf unterschiedliche Betriebssysteme portierbar. Voraussetzung ist lediglich ein WebServer, der mit einem ServletContainer zusammenarbeiten kann. Zudem sind Servlets resourcenschonend. Praktisch jeder Linuxserver im Netz hat einen javabasierten Webserver (Apache, Jboss, etc.) der mit einem Servletcontainer zusammenarbeiten kann. Dieser übernimmt die Verwaltung der Servlets. Er initialisiert die Servlets und entfernt die Servlets aus dem Speicher, wenn sie nicht mehr gebraucht werden. Der bekannteste Servletcontainerist Tomcat, den die Apache Software Foundation entwickelt hat. Tomcat wird meist in Kombination mit dem Apache Webserver eingesetzt. Eine beschreibung der Installation und der Verbindung von Apache und Tomcat findet man in

Apache-Tomcat Connection.

Im folgenden wird beschrieben was man braucht um Servlets zu schreiben.


Apache Tomcat

Notwendig ist ein Webserver, der einen Servletcontainer enthält. Die Referenzimplemntation der Java Servlet API ist Apache Tomcat. Tomcat ist ein eigener kleiner HTTP-Server und wird zusammen mit dem größeren Bruder, dem Apache Webserver von der Apache Software Foundation entwickelt. Der Apache Webserver selbst kann keine Servlets, aber man kann ihn so konfigurieren, daß er Anfragen an Tomcat weiterleitet und auf diese Weise servletfähig wird. Erst Tomcat macht also den großen Apache Wewbserver servletfähig. Zum Programmieren und Testen reicht aber Tomcat alleine aus.

Unter dem folgenden Link kann man nach der aktuelle Version von Tomcat suchen und diese herunterladen.

tomcat.apache.org.

Tomcat benötigt eine Javaumgebung (JRE). Diese muß vorher installiert (worden) sein. Die Installationsroutine von Tomcat erkennt dann die JRE automatisch. Will man später eine Verbindung zu Apache herstellen, so ist es zweckmäßig, einen Pfad ohne Leerzeichen zu wählen.

Wo man Apache bekommt und wie man es schafft, daß die beiden zusammenarbeiten, finden man ausführlich auf dieser WebSite beschrieben unter

Apache-Tomcat Connection.


Installation

Die Installation ist mittlerweile problemlos. Scrennshots zu Installation findet man unter

Tomcat Installation.


Die Servletklassen und die API

Um Servlets entwickeln zu können braucht man Javaklassen, die nicht Bestandteil des JDK sind. Diese Klassen befinden sich in einem Java-Archiv mit dem Namen servlet-api.jar. Für die Entwicklung von Java Server Pages, einer auf der Servlettechnik beruhenden Erweiterung braucht man das Archiv jsp-api.jar. Beide Archive werden bei der Installation von Tomcat im Verzeichnis /lib abgelegt. Zu diesen Archiven braucht man aber noch die Dokumentation der Servlet- und JSP-Klassen. Die Dokumentation kann man auch hier unter dem folgenden Link herunterladen.

apache-tomcat-7.0.27-fulldocs.tar.gz


Servlets entwickeln

Für die Entwicklung von Servlets brauch man das oben erwähnte Java Archiv servlet-api.jar. Es enthält die Packages, die mit einer Import-Anweisung dem Compiler bekanntgemacht werden müssen.

Mit diesen Importen kann man alle Servlets schreiben.


Entwickeln ohne IDE

Wenn man ohne IDE arbeitet, kann man benötigte Java Archive in das ext-Verzeichnis des JDK legen

<JDK-Home>/jre/lib/ext

Falls man beim Ausführen auf die JRE zugreift, müssen die Archive auch noch in der JRE deponiert werden

<JRE-Home>/lib/ext

Eine weitere Möglichkeit ist, den Speicherort mit Hilfe des CLASSPATH bekanntzugeben, dann ist man nicht an das ext-Verzeichnis gebunden.


Entwickeln mit Eclipse oder Netbeans

Eclipse und Netbeans bieten hervorragende Möglichkeiten für die Verwaltung von Projekten und unterstützen selbstverständlich auch Servlets.

Valid XHTML 1.0 Strict top Back Next Up Home