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.