Servlet-Lebenszyklus: Laden Sie zuerst die Servlet-Klasse, instanziieren Sie das Servlet, initialisieren Sie dann das Servlet und rufen Sie die init()-Methode auf, und rufen Sie dann die Service-Methode des Dienstes auf, um doGet zu verarbeiten und doPost-Methoden und schließlich Die destroy-Methode wird aufgerufen, wenn der Container geschlossen wird.
Der Servlet-Lebenszyklus kann als der gesamte Prozess von der Erstellung bis zur Zerstörung definiert werden. Der folgende Prozess folgt einem Servlet:
·Ein Servlet wird durch Aufrufen der init()-Methode initialisiert.
·Servlet ruft die service()-Methode auf, um die Anfrage des Clients zu bearbeiten.
·Servlet wird durch Aufruf der destroy()-Methode beendet (beendet).
·Schließlich ist Servlet Müll, der vom Garbage Collector der JVM gesammelt wird.
Lassen Sie uns nun die Lebenszyklusmethoden im Detail besprechen.
init()-Methode
Die init-Methode ist so konzipiert, dass sie nur einmal aufgerufen wird. Es wird aufgerufen, wenn das Servlet zum ersten Mal erstellt wird, und wird nicht mehr bei jeder weiteren Benutzeranforderung aufgerufen. Daher wird sie wie die Init-Methode des Applets für die einmalige Initialisierung verwendet.
Ein Servlet wird erstellt, wenn ein Benutzer zum ersten Mal die dem Servlet entsprechende URL aufruft. Sie können jedoch auch festlegen, dass das Servlet geladen wird, wenn der Server zum ersten Mal gestartet wird.
Wenn ein Benutzer ein Servlet aufruft, wird eine Servlet-Instanz erstellt. Jede Benutzeranforderung generiert einen neuen Thread und übergibt ihn gegebenenfalls an die doGet- oder doPost-Methode. Die init()-Methode erstellt oder lädt einfach einige Daten, die während des gesamten Lebenszyklus des Servlets verwendet werden.
init-Methode ist wie folgt definiert:
public void init() throws ServletException { // 初始化代码... }
service()-Methode
service()-Methode soll tatsächlich ausgeführt werden Aufgaben Hauptmethode. Der Servlet-Container (d. h. der Webserver) ruft die Methode service() auf, um die Anfrage vom Client (Browser) zu verarbeiten, und schreibt die formatierte Antwort zurück an den Client.
Jedes Mal, wenn der Server eine Servlet-Anfrage empfängt, erzeugt der Server einen neuen Thread und ruft den Dienst auf. Die Methode service() prüft den HTTP-Anforderungstyp (GET, POST, PUT, DELETE usw.) und ruft gegebenenfalls die Methoden doGet, doPost, doPut, doDelete usw. auf.
Das Folgende sind die Merkmale dieser Methode:
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{ }
Die service()-Methode wird vom Container aufgerufen, und die service-Methode ruft bei Bedarf doGet, doPost, doPut, doDelete und andere Methoden auf . Sie müssen also nichts mit der Methode service() tun, sondern müssen lediglich doGet() oder doPost() überschreiben, abhängig von der Art der Anfrage des Clients.
Die Methoden doGet() und doPost() sind die am häufigsten verwendeten Methoden in jeder Serviceanfrage. Nachfolgend sind die Merkmale beider Methoden aufgeführt.
doGet()-Methode
GET-Anfrage kommt von einer normalen Anfrage an eine URL oder von einem HTML-Formular ohne Angabe von METHOD die doGet()-Methode.
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Servlet 代码 }
doPost()-Methode
POST-Anfrage kommt von einem HTML-Formular, das METHOD speziell als POST angibt, das von doPost() verwendet wird Methode behandeln.
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Servlet 代码 }
destroy()-Methode
destroy()-Methode wird nur einmal am Ende des Servlet-Lebenszyklus aufgerufen. Mit der Methode destroy() kann Ihr Servlet die Datenbankverbindung schließen, den Hintergrundthread stoppen, die Cookie-Liste schreiben oder auf den Datenträger klicken und andere ähnliche Bereinigungsaktivitäten durchführen.
Nach dem Aufruf der destroy()-Methode wird das Servlet-Objekt für die Garbage Collection markiert. Die Zerstörungsmethode ist wie folgt definiert:
public void destroy() { // 终止化代码... }
Architekturdiagramm
Die folgende Abbildung zeigt ein typisches Servlet-Lebenszyklusschema.
·Die erste HTTP-Anfrage, die den Server erreicht, wird an den Servlet-Container delegiert.
·Der Servlet-Container lädt das Servlet, bevor er die service()-Methode aufruft.
·Dann verarbeitet der Servlet-Container mehrere von mehreren Threads generierte Anforderungen, wobei jeder Thread die service()-Methode einer einzelnen Servlet-Instanz ausführt.
Weitere FAQs finden Sie auf der chinesischen PHP-Website.
Das obige ist der detaillierte Inhalt vonWas ist der Lebenszyklus eines Servlets?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!