Heim >Java >javaLernprogramm >Teilen Sie einige Informationen über den Servlet-Lebenszyklus in Java

Teilen Sie einige Informationen über den Servlet-Lebenszyklus in Java

黄舟
黄舟Original
2017-07-21 16:29:141450Durchsuche

Dieser Artikel stellt hauptsächlich die relevanten Informationen zum Servlet-Lebenszyklus im Detail vor, die einen gewissen Referenzwert haben.

Dieser Artikel teilt Ihnen die relevanten Informationen zum Servlet-Lebenszyklus mit Ihre Referenz, der spezifische Inhalt ist wie folgt

1. Servlet-Lebenszyklus: Servlet-Laden--->Instantiierung--->Dienst--->Zerstörung.
2.init(): Im Lebenszyklus des Servlets wird die init()-Methode nur einmal ausgeführt. Es wird ausgeführt, wenn der Server das Servlet lädt und ist für die Initialisierung des Servlet-Objekts verantwortlich. Der Server kann so konfiguriert werden, dass er das Servlet lädt, wenn der Server gestartet wird oder wenn ein Client zum ersten Mal auf das Servlet zugreift. Unabhängig davon, wie viele Clients auf das Servlet zugreifen, wird init() nicht wiederholt ausgeführt.
3.service(): Es ist der Kern von Servlet und für die Beantwortung von Kundenanfragen verantwortlich. Immer wenn ein Client ein HttpServlet-Objekt anfordert, wird die Service()-Methode des Objekts aufgerufen und ein „Request“-Objekt (ServletRequest) und ein „Response“-Objekt (ServletResponse) als Parameter an diese Methode übergeben. Die Service()-Methode existiert bereits in HttpServlet. Die Standarddienstfunktion besteht darin, die Do-Funktion aufzurufen, die der HTTP-Anforderungsmethode entspricht.
4.destroy(): Wird nur einmal ausgeführt. Diese Methode wird ausgeführt, wenn der Server stoppt und das Servlet deinstalliert wird. Wenn das Servlet-Objekt den Lebenszyklus verlässt, ist es für die Freigabe der belegten Ressourcen verantwortlich. Ein Servlet generiert möglicherweise andere Threads, wenn die Methode service() ausgeführt wird. Sie müssen daher bestätigen, dass diese Threads beendet oder abgeschlossen wurden, wenn die Methode destroy() aufgerufen wird.

So funktionieren Tomcat und Servlet:

Schritte:

1 .Web Der Client sendet eine HTTP-Anfrage an den Servlet-Container (Tomcat)
2. Der Servlet-Container empfängt die Anfrage vom Web-Client
3. Der Servlet-Container erstellt ein Request-Objekt und kapselt die vom Web-Client angeforderten Informationen darin ein Objekt.
4. Der Servlet-Container erstellt ein Antwortobjekt
5. Der Servlet-Container ruft die Dienstmethode des HttpServlet-Objekts auf und übergibt das Request-Objekt und das Response-Objekt als Parameter an das Servlet-Objekt.
6.Servlet ruft die relevanten Methoden des Request-Objekts auf, um HTTP-Anforderungsinformationen abzurufen.
7.HttpServlet ruft die relevanten Methoden des Response-Objekts auf, um Antwortdaten zu generieren.
8. Der Servlet-Container übergibt das Antwortergebnis von HttpServlet an den Web-Client.

Servlet-Funktionsprinzip:

Erklären Sie zunächst kurz den Prozess des Servlet-Empfangs und der Beantwortung von Kundenanfragen Eine Anfrage, Servlet Die service()-Methode wird aufgerufen, um auf die Anfrage zu antworten. Aus dem Quellcode ist ersichtlich, dass die service()-Methode mit der Anfragemethode übereinstimmt, doGet, doPost und andere Methoden aufruft und dann die eingibt entsprechende Methode zum Aufrufen der Logikschicht. Methoden zum Implementieren von Antworten an Kunden. In der Servlet-Schnittstelle und im GenericServlet gibt es keine Methoden wie doGet(), doPost() usw. Diese Methoden sind in HttpServlet definiert, aber sie geben alle Fehlerinformationen zurück. Daher müssen wir doGet Or implementieren doPost und andere Methoden.
2. Jedes angepasste Servlet muss die Servlet-Schnittstelle implementieren. Die Servlet-Schnittstelle definiert fünf Methoden, von denen die wichtigsten drei Methoden den Lebenszyklus des Servlets betreffen, nämlich init (oben erwähnt), service () und destroy ()-Methoden. GenericServlet ist ein allgemeines Servlet, das für kein Protokoll spezifisch ist und die Servlet-Schnittstelle implementiert. HttpServlet erbt von GenericServlet, sodass HttpServlet auch die Servlet-Schnittstelle implementiert. Wenn wir also Servlet definieren, müssen wir nur HttpServlet erben.
3. Die Servlet-Schnittstelle und GenericServlet sind für kein Protokoll spezifisch, während HttpServlet eine für das HTTP-Protokoll spezifische Klasse ist, sodass die service()-Methode in HttpServlet implementiert ist und die Anforderungen ServletRequest und ServletResponse an HttpRequest und HttpResponse erzwungen werden .

Zeitpunkt zum Erstellen eines Servlet-Objekts:

1. Wenn der Servlet-Container gestartet wird: Lesen Sie die Informationen in der Konfigurationsdatei web.xml Erstellen Sie das angegebene Servlet-Objekt, erstellen Sie ein ServletConfig-Objekt und verwenden Sie das ServletConfig-Objekt als Parameter, um die Init-Methode des Servlet-Objekts aufzurufen.
2. Nachdem der Servlet-Container zum ersten Mal gestartet wurde, stellt der Servlet-Container fest, ob das angegebene Servlet-Objekt im Speicher vorhanden ist, und erstellt dann HttpRequest und HttpResponse-Objekte entsprechend der Kundenanforderung, wodurch die Servicemethode des Servlet-Objekts aufgerufen wird.
3.Servlet Der Servlet-Container erstellt beim Start automatisch ein Servlet, das durch das für das Servlet in der Datei web.xml festgelegte Attribut 4781e2cbaa93c386271b418d3a01af08 bestimmt wird. Daraus können wir auch erkennen, dass Servlet-Objekte desselben Typs als Singletons im Servlet-Container existieren.


<servlet>
  <servlet-name>Init</servlet-name>
  <servlet-class>org.xl.servlet.InitServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

Das obige ist der detaillierte Inhalt vonTeilen Sie einige Informationen über den Servlet-Lebenszyklus in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn