home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Einführung

Sobald der Wunsch besteht, Webseiten abhängig von Benutzereingaben oder Datenbankinhalten zu gestalten, wie das beispielsweise bei Onlineshops der Fall ist, genügen statische HTML-Seiten nicht mehr.

Die J2EE bietet mit Servlets und JSPs ein leistungsfähiges Gespann an, um diesen Wunsch zu erfüllen.

Ein Servlet ist eine Java-Klasse, die von javax.servlet.GenericServlet erbt und Webanfragen behandeln und Antworten generieren kann. Ein Servlet benötigt einen Servlet-Container als Laufzeitumgebung. D.h. ein Servlet ist keine eigenständig lauffähige Anwendung.

Eine typische Architektur, in der Servlets zum Einsatz kommen, sind vierschichtige Anwendungen, aus Browser-Client, Servlet, Geschäftslogikschicht und Datenbank.

Ein Beispiel für ein sehr einfaches Servlet, welches nur "Hallo" auf dem Browser ausgeben kann, sieht wie folgt aus:

 

package org.johner.servlet;
import java.io.*;
import javax.servlet.http.*;
public class SimpleServlet extends HttpServlet {
  public void doGet (HttpServletRequest req, HttpServletResponse res)
    throws IOException {
    PrintWriter writer = res.getWriter();
    res.setContentType("text/html");
    writer.write("<html><body><H1>Hallo</H1></body></html>");
  }
}

 

Zu den Vorteilen der Servlets zählen

     

  • Portabilität durch die Sprache Java
  • Sprachumfang durch die Sprache Java
  • Sicherheitskonzepte
  • Kostenfrei verfügbar
  • Geringer Ressourcenverbrauch s. Servlet Lebenszyklus

Hingegen spricht gegen die Servlet-Technologie, dass sie auf vielen Systemen der "Hoster" im Gegensatz zu PHP oder CGI nicht zur Verfügung steht. Der Nachteil, dass Servlet selbst nicht dem MVC-Paradigma folgen, besteht angesichts der komplementären JSP-Technologie nicht.

Kommunikation

Ein Servlet kommuniziert nicht direkt mit einem Client. Dieser schickt seine HTTP-Anfrage an den Webserver, welcher den Request an die Servlet-Engine (den Servlet-Container) weiterreicht. Dort wird der Request bearbeitet und über den Webserver wieder zum Browser zurückgeschickt.