Alle Servlets müssen das Interface javax.servlet.Servlet implementieren. Dieses Interface wird normalerweise durch überschreiben der generischen oder der HTTP-spezifischen Basisklasse implementiert.

Das Servlet Interface definiert 5 Methoden, von denen 3 eine besondere Rolle im Lebenszyklus eines Servlets spielen.

  • void destroy()

  • ServletCOnfig getServletConfig()

  • String getServletInfo()

  • void init() throws ServletException

  • void service(ServletRequest req, ServletResponse res) throws ServletException, IOException



Die erste Methode, die bei einem Servlet aufgerufen wird ist die init-Methode. Vor deren vollständigen Abarbeitung wird die service-Methode des Servlets nicht aufgerufen. In der init-Methode können Initialisierungen des Servlets (z.B. Datenbankverbindungen, ...) vorgenommen werden.

Nach der Abarbeitung der init-Methode steht das Servlet mit der service-Methode Clients für die Bearbeitung von Anfragen zur Verfügung.
Befor der Container ein Servlet beendet, ruft er dessen destroy-Methode auf, in der Aufräumarbeiten (z.B. schließen von Datenbankverbindungen, ...) vorgenommen werden können.

In der Regel verwenden Container ein Servlet für mehrere Clients. Es ist jedoch erlaubt, dass der Container mehrere Instanzen eines Servlets erstellt, die nach dem beschriebenen Lebenszyklus ablaufen. Zur Kommunikation zwischen den Servlets können statische Instanzvariablen verwendet werden (vorausgesetzt die Servlet Ausführung findet innerhalb einer Virtual Machine statt).

Servlets werden im Normalfall in Multithread-Umgebungen ausgeführt. Es ist vom Programmierer sicherzustellen, dass gefährdete Bereiche innerhalb der service-Methode entsprechend geschützt werden.