Servlet-Lebenszyklus

Der Lebenszyklus eines Servlets wird vom Servlet-Container verwaltet. Der Lebenszyklus kann in 5 Phasen zusammengefasst werden:
  1. Load Servlet class
  2. Create Servlet instance
  3. Call method init()
  4. Rufen Sie die Methode service()
  5. Rufen Sie die Methode destroy()
Die Schritte 1, 2 und 3 werden nur einmal ausgeführt, wenn das Servlet geladen ist. Standardmäßig wird das Servlet erst geladen, wenn die erste Anforderung empfangen wird. Sie können den Servlet-Container zwingen, das Serlvet zu laden, wenn es läuft.
Schritt 4 wird jedes Mal mehrmals ausgeführt  Anfrage  HTTP.
Schritt 5 wird ausgeführt, wenn der Servlet-Container das Servlet zerstört.

Dies ist ein Algorithmus, der den Lebenszyklus eines Servlets darstellt:

Servlet-Lebenszyklus

Die Schritte werden im Folgenden ausführlich erläutert:

Laden Sie die Servlet-Klasse

Zuerst wird das Servlet aufgerufen, Der Servlet-Container muss die Servlet-Klasse laden. Dies geschieht wie bei jeder anderen Klasse.

Create Servlet instance

Nachdem die Klasse geladen wurde, erstellt der Container eine neue Servlet-Instanz. In der Regel wird nur eine Instanz erstellt und die Anfrage  werden in derselben Servlet-Instanz verarbeitet. Es ist an der Servlet-Container zu entscheiden, aber im Allgemeinen gibt es nur eine Instanz.

Call init()

Die Methode init() ist so konzipiert, dass es nur einmal aufgerufen werden kann. Wenn die Instanz erstellt wird, wird die Methode init() aufgerufen wird. . Es ermöglicht dem Servlet, initialisiert zu werden, bevor die erste Anforderung verarbeitet wird. Sie können die Servlet-Initialisierungsparameter im web.xml.

Die init()-Methode sieht folgendermaßen aus:

public void init() throws ServletException {
// Initialisierung...
}

Call service()

Für jede empfangene Anfrage erstellt der Server einen neuen Thread und führt die Methode ausservice(). Die Methode service() prüft den Typ des HTTP-Requests (GET, POST, PUT, DELETE, etc.) und ruft die entsprechenden Methoden doGet, doPost, doPut, doDelete, etc. auf. Solange das Servlet aktiv bleibt, wird die Methode service() kann erneut aufgerufen werden. Dieser Schritt kann also der längste Schritt im Lebenszyklus eines Servlets sein, da er mehrmals ausgeführt wird.

Hier ist die Deklaration dieser Methode:

public void service(ServletRequest request, 
ServletResponse response)
throws ServletException, IOException{
}
Die Methoden doGet() und doPost() werden häufig bei jedem Eintreffen verwendet. bitten. Hier ist die Aussage  beider Methoden.

Die doGet()Die GET-Anfrage wird in einer URL oder in einem HTML-Formular erstellt, für das keine Methode definiert ist und die von doGet() verarbeitet werden muss.

public void doGet(HttpServletRequest request,
HttpServletResponse response)
löst ServletException aus, IOException {
// code
}

Die doPost()

La -Methode Abfrage  POST wird in einem HTML-Formular erstellt und sollte von der Methode doPost().

public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet code
}

Call destroy()

method < span style="font-family: Courier New, Courier, minivan;" >destroy() wird nur einmal am Ende des Lebenszyklus eines Servlets aufgerufen. Mit dieser Methode können Sie die Verbindung schließen, Threads stoppen und Cookie-Listen speichern.
After destory() aufgerufen wird, wird das Servlet-Objekt zerstört. Die Methode destory() sieht so aus:

public void destroy() {
// Finalisierungscode...
}