Java Servlets

Aus Byte-Welt Wiki
Wechseln zu: Navigation, Suche

Begriff

Java Servlets sind Java Klassen, die als Schnittstelle zwischen einer Java Anwendung und einem Servlet Container dienen. Sie implementieren das Interface javax.servlet.Servlet. Im Webbereich wird allerdings in der Regel von der Klasse javax.servlet.http.HttpServlet abgeleitet.

Funktionsweise

Java Servlets sind Java-Objekte, die Requests (Anfragen) von Webclients entgegen nehmen, eine Response (Antwort) mit dynamischem Inhalt generieren und zum Client zurück schicken. Die zugrunde liegende Technologie wurde von Sun Microsystems entwickelt und ist Bestandteil der Java Plattform, Enterprise Edition (Java EE).

Bei Webanwendungen werden bevorzugt HttpServlets verwendet. Hier ist diese Implementierung der Service-Methode bereits vorgegeben. Sie unterscheidet die einzelnen http-Methoden und ruft für Jede einen entsprechenden Handler auf, so dass eigene Ableitungen hier besser die Methoden „doGet()“ bzw. „doPost()“ für das http-GET bzw. http-POST überschreiben sollten. Die jeweiligen Methoden erhalten vom Servlet-Container alle erforderlichen Informationen, z.B. ein Request- und ein Response-Objekt.

Nach Abarbeitung des individuellen Codes der Anwendung liefert der Servlet Container das Ergebnis an den Client zurück.

JavaEE 5

Java Servlets wurden bis JavaEE 5 über eine Konfigurationsdatei ‚web.xml’ dem Servlet Container bekannt gemacht und mit einer URL versehen. Über die URL können Clients z.B. vom Browser aus das Servlet aufrufen. Der Servlet Container erkennt anhand des Inhalts der Konfigurationsdatei, welches Servlet zu verwenden ist. Falls noch nicht geschehen, wird eine Instanz der Klasse erzeugt und die von jedem Servlet zu implementierende Service-Methode aufgerufen.

JavaEE 6

Seit JavaEE 6 ist die Verwendung der Konfigurationsdatei optional.

Einsatzgebiete

Java Servlets werden zur Kommunikation mit einer Java Anwendung auf einem Servlet Container eingesetzt. Auch beim Einsatz von JavaServer Pages ist dies der Fall, da diese Seiten lediglich eine Art Wrapper für Servlets sind, die zur Vereinfachung der Entwicklung einer grafischen Weboberfläche dienen soll. Der Servlet Container wandelt JSP-Seiten kurzerhand in Servlets um und verwendet diese dann für die weitere Abarbeitung.

Für den Entwickler sind Servlets eine sinnvolle Ergänzung zu JavaServer Pages im Sinne der Entwicklung nach dem Model-View-Controller-Prinzip (MVC). Dabei übernehmen Servlets die Rolle des Controllers in dem sie sämtliche webspezifische Logik einer Anwendung implementieren. So werden JSP-Seiten von störendem Java Code befreit und es wird eine klare Trennung von Auszeichnungssprache und Programmiersprache erreicht. Alle Interaktionen des Webanwenders, die eine Kommunikation mit dem Server zur Folge haben (auch das Anfordern einer neuen JSP-Seite) werden hier über Servlets abgewickelt.

Servlets in Web Frameworks

JSF und Struts implementieren mit dem FacesServlet bzw. dem ActionServlet je ein einziges Servlet als zentrale Controllerinstanz. Diese verarbeitet die Konfigurationsdatei des jeweiligen Frameworks und steuert so die Gesamtanwendung.

Externe Links

Java Servlet Technology (SUN)