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