Servlet

Servlet

Als Servlets bezeichnet man Java-Klassen, deren Instanzen innerhalb eines Java-Webservers Anfragen von Clients entgegennehmen und beantworten. Weiterhin sind sie fester Bestandteil aller Java-EE-Anwendungsserver. Die Servlet-Komponenten müssen immer die Schnittstelle javax.servlet.Servlet oder eine davon abgeleitete Schnittstelle implementieren. Normalerweise wird eine Klasse erstellt, die von der Klasse javax.servlet.http.HttpServlet abgeleitet wird, welche wiederum javax.servlet.Servlet implementiert. Der Inhalt der Antworten kann dabei dynamisch, also im Moment der Anfrage, erstellt werden und muss nicht bereits statisch (etwa in Form einer HTML-Seite) für den Webserver verfügbar sein. Servlets stellen somit das Java-Pendant zu CGI-Skripten oder anderen Konzepten dar, mit denen dynamisch Web-Inhalte erstellt werden können (PHP, Ruby on Rails, Active Server Pages etc.).

Inhaltsverzeichnis

Verwendung

Häufig werden in einem Servlet sowohl Parameter der Anfrage als auch Sitzungsdaten verwendet, um zum Beispiel eine personalisierte Antwort zu erzeugen oder Daten auf dem Server zu speichern oder zu verändern. Die Antworten können neben Text (zum Beispiel HTML oder XML) auch Bilder oder andere Binärdateien sein.

Servlets werden oft im Rahmen der Java-EE-Spezifikation nach dem Entwurfsmuster Model View Controller (MVC) in Form von JavaServer Pages verwendet, wobei die JSP die View repräsentiert. Frameworks wie Struts vervollständigen dabei das MVC-Muster.

Instanzen eines Servlets werden bei Bedarf von der Laufzeitumgebung, dem sogenannten Web Container erzeugt und von ihm aus angesprochen. Der Web Container kommuniziert seinerseits mit dem Webserver oder ist integraler Bestandteil eines Java Webservers.

Bei Verwendung der Servlet-Spezifikation und einer entsprechenden Web-Container-Umgebung (z. B. Apache Tomcat, Jetty) besteht die Implementierung einer dynamischen Webseite in folgendem: Es wird eine von javax.servlet.http.HttpServlet abgeleitete Klasse erstellt. Eine oder beide Methoden doGet und doPost der Superklasse werden überschrieben, um die beiden wichtigsten HTTP-Methoden GET und POST verarbeiten zu können (häufig wird auch nur die Methode service überschrieben, welche unabhängig vom HTTP-Befehl aufgerufen wird). Die Metainformationen über das Servlet werden in einer XML-Datei namens web.xml hinterlegt, dem Deployment Descriptor. Diese XML-Datei wird zusammen mit der kompilierten Klasse (sowie ggf. weiteren benötigten Klassen) in einer einzigen Archiv-Datei zusammengeführt (sogenanntes Web-Archiv), dieses wiederum wird dem Webcontainer über eine von ihm bereitgestellte Funktionalität zur Verfügung gestellt (sog. Deployment).

Begriff

Das englische Wort „Servlet“ ist ein Kofferwort, das sich aus den Begriffen „Server“ und „Applet“ zusammensetzt, also serverseitiges Applet und somit Servlet.

Sun hat mit Einführung der Sprache Java zwei Arten von Anwendungen definiert: Applications (also richtige, ausgewachsene Desktop-Anwendungen) und Applets (wörtlich: Anwendung-chen, also kleine Mini-Anwendungen, die nur innerhalb eines Containers – in der Regel in einem Webbrowser – ablaufen). Als die Java-Technologie auch auf die Serverseite kam, suchte man dort einen Namen für die kleinen Codestückchen, die jetzt nicht mehr im Kontext des Browsers, sondern in dem des Webservers laufen, der an Applet erinnert. Schließlich ist es ein im weitesten Sinne ähnliches Konzept: kleine Serveranwendung-chen, die einen Container (hier: den Web-Server) um sich herum brauchen, um laufen zu können. Dabei kam man auf Servlet.

Standardisierung / Versionen

Die Handhabung, das Verhalten und das Verwalten von Java servlets folgt einem Standard, der über den Java Community Process (JCP) definiert wird. An diesem Standard wird aktiv gearbeitet und es gibt verschiedene Versionen. Aktuell ist die Servlet Version 3.0 die letzte veröffentlichte Version, welche Bestandteil der Java EE 6 Spezifikation ist. Sie wurde im Dezember 2009 veröffentlicht.

Abgrenzung

Um die Funktionalität eines Servers zu erweitern, können separate ausführbare Module geschrieben werden. Diese Server Extensions gibt es für zahlreiche Plattformen, z. B. existiert für die Microsoft Internet Information Services (IIS) das sogenannte Internet Server API (ISAPI). In Java werden Server-Erweiterungen mit Hilfe der Servlet API geschrieben. Die Server-Extension-Module heißen Servlets.

Beispiel

  1. Der Benutzer sendet ein ausgefülltes Formular im Browser ab.
  2. Der Browser löst die damit verbundene Aktion aus, indem er die Formulardaten an den Webserver sendet.
  3. Der Webserver übersetzt den Aktionsnamen des Formulars in den Namen einer Servletklasse. Er verwendet dazu Informationen aus dem Deployment-Deskriptor, einer Datei namens „web.xml“.
  4. Der Webserver ruft die Methode request des Servlets auf und übergibt dabei die Anfragedaten („request“) als Parameter. Die Methode response erzeugt eine Ausgabe, die der Webserver an den Browser sendet.
  5. Der Browser nimmt die Antwort entgegen und stellt sie dar.
  6. Der Benutzer liest die Antwort im Browser.

Das folgende Ablaufdiagramm zeigt einen typischen Ablauf beim Aufruf eines Servlets.

Ablaufdiagramm einer Web-Anwendung mit Servlet


Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Servlet —   (Serverlet), ein kleines Java Programm, das auf dem Server abläuft, im Gegensatz zu einem Java Applet, das auf dem Client durchgeführt wird. Typisches Beispiel eines Servlets ist das automatische Weiterleiten auf die aktuelle Webadresse, wenn… …   Universal-Lexikon

  • Servlet — Une servlet est une classe Java qui permet de créer dynamiquement des données au sein d un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais elles peuvent également l être au format XML ou tout autre format… …   Wikipédia en Français

  • Servlet — Сервлет является программой, выполняющейся на стороне сервера и расширяющей функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос ответ. Сервлеты должны реализовывать Servlet интерфейс, который… …   Википедия

  • servlet — serverio programėlė statusas T sritis informatika apibrėžtis ↑Programėlė, esanti ir veikianti serveryje. Paprastai tai būna javos programėlė ir atlieka tokios programėlės funkcijas. Tiktai jas atlieka būdama serveryje. Tai pagalba naršyklėms,… …   Enciklopedinis kompiuterijos žodynas

  • Servlet Java — Servlet Une servlet est une application Java qui permet de créer dynamiquement des données au sein d un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais elles peuvent également l être au format XML ou tout autre …   Wikipédia en Français

  • servlet — noun a Java program, running in a Internet server, that generates web content dynamically depending on the content of a request from a client Syn: serverlet …   Wiktionary

  • Servlet — (WWW )Server Applikation ohne eigene Oberfläche (in Java), vergl. Applet …   Acronyms

  • servlet — ● ►en n. m ou f.? ►WEB applet destinée à être exécutée sur le serveur et non pas chez le client …   Dictionnaire d'informatique francophone

  • Servlet — aus den Begriffen ⇡ Server und ⇡ Applet zusammengesetztes Wort für ein kleines, in ⇡ Java geschriebenes Programm, das im Gegensatz zum Applet auf dem Server und nicht auf dem Client ausgeführt wird. Vgl. auch ⇡ Enterprise JavaBeans …   Lexikon der Economics

  • Servlet — (WWW )Server Applikation ohne eigene Oberfläche (in Java), vergl. Applet …   Acronyms von A bis Z

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”