studyklar
IProg · Skript 8 · Abschnitt 2

Servlets und ihr Lebenszyklus

Ein Servlet ist eine Java-Klasse, die auf eine Anfrage aus dem Browser antwortet. Hier steht, wer sie erzeugt und welche ihrer Methoden wann laufen. Rechts wächst ein kleines Servlet, das seine Aufrufe zählt. Mit Weiter geht es Schritt für Schritt voran.

Worum es geht

Skript 08, Folien 8, 10, 14 und 15: Servlets, Servlet-Container und der Lebenszyklus eines Servlets.

Ein PHP-Skript startet bei jeder Anfrage von vorn. Ein Servlet nicht: Es bleibt zwischen den Anfragen im Speicher des Servers. Die Frage ist: Wann wird es erzeugt, welche Methode läuft bei einer Anfrage, und wann verschwindet es wieder?

„Folie N“ heißt hier immer die N-te Seite der PDF-Datei. Die kleine Zahl unten auf der Folie kann davon abweichen.

So gehen wir vor:

  1. Was ein Servlet ist und wer es ausführt.
  2. Warum ein Servlet im Speicher bleibt.
  3. Der Lebenszyklus an einem Servlet, das seine Aufrufe zählt.
  4. Was auf der Konsole steht, wenn es dreimal aufgerufen wird.
  5. Eine Klausurfrage zum Üben.

Eine Java-Klasse, über das Web aufrufbar

Skript · Servlets
  • Java-Klasse, die über das Web aufgerufen werden kann.
  • Um auf das HTTP-Protokoll zu reagieren, muss von jakarta.servlet.http.HttpServlet abgeleitet werden.
  • Wichtige Methoden: doGet, doPost, service.

Ein Servlet ist eine gewöhnliche Java-Klasse. Besonders ist nur: Der Server ruft sie auf, sobald der Browser eine bestimmte Adresse anfragt.

Damit sie auf HTTP antworten kann, erbt sie von der Klasse HttpServlet. Erben heißt: Sie übernimmt alle Methoden dieser Klasse und kann einzelne davon neu schreiben (überschreiben).

Die wichtigen Methoden sind doGet für eine GET-Anfrage, doPost für eine POST-Anfrage und service. Die Methode service nimmt jede Anfrage an und reicht sie an doGet oder doPost weiter.

Aus Skript 01, Folie 31: GET: Der Client möchte ein Dokument empfangen. POST: Der Client übermittelt Daten, typisch bei Formularen.

Der Servlet-Container führt es aus

  • Laufzeitumgebung: Servlet-Container, z. B. Tomcat.
  • Der Container erzeugt das Servlet und ruft seine Methoden auf.

Ein Servlet hat keine main-Methode. Man startet es nicht selbst. Das übernimmt der Servlet-Container: ein Programm auf dem Server, das Servlets erzeugt, aufruft und wieder entfernt. Man nennt ihn die Laufzeitumgebung des Servlets.

Wir benutzen Apache Tomcat. Bei PHP war es ähnlich: Dort führte der Apache-Webserver die PHP-Skripte aus.

Noch 9 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1Was ein Servlet ist

Klasse, Container, Instanz

Browserschickt Anfragen: 1., 2., 3., …
Servlet-Container (z. B. Tomcat)
beim ersten Aufruf
Klasse laden
Instanz erzeugen
init()
bei jedem Aufruf
doGet(), doPost(), service()auch mehrere gleichzeitig
als letzter Aufruf
destroy()zum Aufräumen
Legendegerade gemeintDer Lebenszyklus eines Servlets im Servlet-Container.