Servlet

servlet

Copyright © Shutterstock / Dominik Bruhn

Was ist ein Servlet?

Ein Servlet (zusammengesetzt aus “Server” und “Applet”) ist eine Java-Anwendung, die auf einem Webserver platziert wird. Dabei ist es Bestandteil der Java-EE-Technologie. Kennzeichnend für Servlets ist, dass die Instanzen der ihm zugrundeliegenden Java-Klasse in der Lage sind, über den Webserver Anfragen entgegenzunehmen, die von Clients stammen. Diese Anfragen werden durch die Servlets beantwortet, wobei es verschiedene Möglichkeiten für die Art der Antwort gibt. Das Servlet hat große Bedeutung, wenn es darum geht, dynamische Webseiten zu generieren.

Warum werden Servlets verwendet?

Servlets sind vor allem deshalb praktisch, weil sie in der Lage sind, die Antworten an die Clients dynamisch zu erstellen. Der Server muss also keine statische Seite verwalten, sondern kann über das Servlet die Seite zum Zeitpunkt der Nutzeranfrage generieren. Damit bieten Servlets eine große Flexibilität und stellen die Möglichkeit zur Verfügung, Inhalte jeglicher Form in einer Webseite darzustellen. Vor allem werden mit ihrer Hilfe Interaktionen mit dem Nutzer des Browsers ermöglicht – eine Funktion, die jede moderne Webseite bereitstellen sollte.

Entwicklung und Nutzung von Servlets

Servlets wurden von Sun entwickelt. Das Ziel bestand darin, die Vorteile der Java-Technologie auch für Webseiten verfügbar zu machen. Sie nehmen die dritte Position der wesentlichen Anwendungsmöglichkeiten für Java ein – neben den Applications, den großen Programmen, und den Applets, den Mini-Anwendungen für den Browser. Die spätere Entwicklung war auch der Grund für die Namensgebung – es handelt sich um Applets, die nicht im Browser, sondern im Kontext eines Servers laufen.

Servlets sind Weiterentwicklungen der Schnittstelle CGI und vergleichbaren Konzepten. Hier wird auf die Universal-Programmiersprache Java zurückgegriffen, wobei andere Sprachen entbehrlich sind. Gerade ältere Sprachen, wie PHP oder Perl, finden keine Verwendung mehr.

Sie erlauben moderne Web-Programmierung mithilfe des MVC-Konzepts (Model View Controller). Ihr Einsatz erfolgt häufig im Zusammenhang mit Java Server Pages (JSP). Servlets stellen Model und Controller dar, während die Java Server Page die View bereitstellt.

Programmierung mit einem Servlet

Wie andere Java-Anwendungen sind Servlets in der Form von Java-Klassen aufgebaut. Ein Servlet wird implementiert, indem eine Servlet-Klasse erstellt wird. Eine solche Klasse zeichnet sich dadurch aus, dass sie eine Schnittstelle implementiert, die die Funktionen für das Servlet zum Zugriff zur Verfügung stellt. Diese Schnittstelle hat den Namen javax.servlet.Servlet. Als Unterstützung für die komplexe Implementierung der Schnittstelle ist es möglich, die Klasse javax.servlet.http.HttpServlet heranzuziehen. Um alle Funktionen bereitzustellen, ist es erforderlich, dass es die Möglichkeit gibt, GET oder POST verarbeiten zu können. Dabei handelt es sich um die beiden zentralen HTTP-Methoden, die bei Anfragen des Users aufgerufen werden können. Um das zu erreichen, werden die Funktionen doGet und doPost überschrieben. Es ist auch möglich, nur für eine der beiden Funktionen Code bereitzustellen. Weiterhin kann auch nur die Funktion service überschrieben werden.

Servlets benötigen außerdem Meta-Informationen. Diese sind erforderlich, um eine Registrierung des Servlets auf dem Server vornehmen zu können. Zu diesem Zweck werden die gewünschten Daten in die Datei web.xml geschrieben.

Alle erstellten Dateien (zu denen die Datei web.xml und die kompilierte Klasse mit der Servletfunktion gehören) werden dann in einem Web-Archiv hinterlegt. Hierbei handelt es sich um eine Archiv-Datei, die dem Servlet-Container übergeben werden kann. Auf diese Weise werden die Dateien und die in ihnen gespeicherten Informationen für den Zugriff durch den Server bereitgestellt. Der Servlet-Container arbeitet mit dem Webserver zusammen. Der Server greift bei einer Anfrage auf den Container zu, der dann die Java-Klasse instanziert und die Instanz startet. Auf diese Weise kann der Server die benötigten Inhalte für die darzustellende Webseite zur Verfügung stellen.

So stellen Servlets Inhalte dar

Das Besondere an einem Servlet ist, dass es mit dem Server zusammenarbeiten kann und dieser die Möglichkeit hat, mit seiner Hilfe dynamische Inhalte zu generieren. Damit ist es für den Server auch möglich, Informationen des Nutzers über diesen Weg zu verarbeiten.

Wenn sich zum Beispiel ein User für eine Webseite registriert, werden seine Login-Daten nach seinem Mausklick an den Server geschickt. Das geschieht über die Vermittlung des Browsers, der die erhaltenen Daten an den Server übergibt. Der Server hat nun die Aufgabe, herauszufinden, welcher Servlet-Klasse die zugesandten Daten zugeordnet werden sollen. Hierzu wird der Aktionsname des Formulars übersetzt, wobei Informationen verwendet werden, die in der Datei web.xml gespeichert worden sind.

Jetzt wird eine der in der Klasse implementierten Schnittstellen-Methoden doPost und doGet aufgerufen. Welche davon ausgewählt wird, hängt davon ab, welche HTTP-Methode das Formular nutzt. Hierbei stehen die Methoden POST und GET zur Verfügung. Im Aufruf der Methode werden die Daten der Anfrage als Parameter übergeben. Hierbei handelt es sich in diesem Fall um die Registrierungsdaten des Nutzers. Weiterhin wird das response-Objekt übergeben. Dieses hat die Aufgabe, die Ausgabe der Webseite zu kontrollieren. Nachdem die Methode durchgelaufen ist, werden die erzeugten Ausgaben vom Server aus an den Browser geschickt. Dieser übernimmt die Darstellung der vom Server erhaltenen Antwort. Der Nutzer hat nun die Möglichkeit, das Ergebnis seiner Registrierung zu lesen und zu überprüfen.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte