Heim  >  Artikel  >  Java  >  Wann werden Servlets generell zerstört?

Wann werden Servlets generell zerstört?

little bottle
little bottleOriginal
2019-05-14 09:59:585859Durchsuche

Servlet ist die Abkürzung für „Java Servlet“. Es handelt sich um ein in Java geschriebenes serverseitiges Programm. Seine Hauptfunktion besteht darin Interaktives Durchsuchen und Generieren von Daten sowie Generieren dynamischer Webinhalte, die normalerweise zur Ausführung auf dem Client verwendet werden, führen zu Diensten wie der Durchführung von Berechnungen für den Benutzer oder der Positionierung von Grafiken basierend auf Benutzerinteraktion. Wann wird das Servlet zerstört?

Wann werden Servlets generell zerstört?

Wenn der Server die Servlet-Instanz nicht mehr benötigt oder neu geladen wird, wird die Methode destroy aufgerufen, um das Servlet zu zerstören. Mit dieser Methode kann das Servlet alle angewendeten Anwendungen freigeben für in der Init-Ressource. Sobald eine Servlet-Instanz beendet ist, darf sie nicht erneut aufgerufen werden und kann nur auf die Deinstallation warten.

Ich erinnere mich übrigens an den Lebenszyklus des Servlets:

1. Servlet laden und instanziieren

Beim Starten des Servlet-Containers sucht der Container zunächst nach einer Konfiguration Datei web.xml, diese Datei zeichnet das Servlet auf, das Dienste bereitstellen kann. Jedem Servlet wird ein Servlet-Name zugewiesen. Dabei handelt es sich um den vollständigen Java-Klassendateinamen, dem das Servlet tatsächlich entspricht. Der Servlet-Container erstellt eine Instanz jedes Servlets mit Autoload-Optionen. Daher muss jede Servlet-Klasse über einen öffentlichen, parameterlosen Konstruktor verfügen.

2. Initialisierung

Wenn ein Servlet instanziiert wird, ruft der Servlet-Container die Init-Methode jedes Servlets auf, um jede Instanz zu instanziieren. Nach der Ausführung der Init-Methode befindet sich das Servlet im Status „Initialisiert“. " Zustand. " Zustand. Sobald das Servlet instanziiert ist, wird daher die Init-Methode aufgerufen. Das Servlet wird nicht sofort nach dem Start initialisiert, sondern nach Erhalt der Anfrage. Verwenden Sie ... in der Datei web.xml, um das Servlet vorab zu initialisieren.

Nachdem die Initialisierung fehlschlägt, wird die init()-Methode ausgeführt und eine ServletException ausgelöst. Das Servlet-Objekt wird vom Garbage Collector recycelt. Wenn der Client zum ersten Mal auf den Server zugreift, lädt er das Servlet Implementierungsklasse, erstellt das Objekt und führt die Initialisierungsmethode aus.

3. Anfrageverarbeitung

Nachdem das Servlet initialisiert wurde, ist es bereit, auf Anfragen zu antworten. Jede Anfrage an ein Servlet wird durch ein Servlet-Request-Objekt dargestellt. Die Antwort des Servlets an den Client wird durch ein Servlet-Antwortobjekt dargestellt. Für eine bei einem Client eintreffende Anfrage erstellt der Server ein „Anfrage“-Objekt und ein für die Anfrage spezifisches „Antwort“-Objekt. Rufen Sie die Servicemethode auf, die andere Methoden aufrufen kann, um die Anfrage zu bearbeiten.

Die Service-Methode wird aufgerufen, wenn auf den Server zugegriffen wird. Die Service-Methode kann während des Lebenszyklus des Servlet-Objekts mehrmals aufgerufen werden Der Server befindet sich im Netzwerk. Wenn verschiedene Hosts (Clients) im Server gleichzeitig auf dieselbe Ressource zugreifen, öffnet der Server mehrere Threads, um unterschiedliche Anforderungen zu verarbeiten können Fehler beim gleichzeitigen Datenzugriff auftreten.

Beachten Sie außerdem, dass Sie beim Hinzufügen berücksichtigen müssen, ob eine Synchronisierung hinzugefügt werden soll, wenn mehrere Threads zwangsläufig dieselbe Variable gleichzeitig verarbeiten (z. B. beim Schreiben in dieselbe Datei) und wenn Lese- und Schreibvorgänge vorliegen Fügen Sie bei der Synchronisierung keinen übermäßigen Bereich hinzu, da das Programm möglicherweise zu einem reinen Single-Thread wird, was die Systemleistung erheblich beeinträchtigt. Es muss nur sicher sein, dass mehrere Threads auf dasselbe Objekt zugreifen.

4. Servlet zerstören

Wenn der Server die Servlet-Instanz nicht mehr benötigt oder neu geladen wird, wird die Zerstörungsmethode aufgerufen. Mit dieser Methode kann das Servlet alle beantragten Ressourcen freigeben init-Methode. Sobald eine Servlet-Instanz beendet ist, darf sie nicht erneut aufgerufen werden und kann nur auf die Deinstallation warten.

Sobald das Servlet beendet ist, kann die Servlet-Instanz durch Müll gesammelt werden und befindet sich im Status „deinstalliert“. Wenn der Servlet-Container geschlossen ist, wird eine Servlet-Instanz nur einmal deinstalliert , aber es können mehrere identische Instanzen erstellt werden. Beispielsweise kann dasselbe Servlet mehrere Instanzen erstellen, wenn es entsprechend unterschiedlichen Konfigurationsparametern eine Verbindung zu unterschiedlichen Datenbanken herstellt.

Das obige ist der detaillierte Inhalt vonWann werden Servlets generell zerstört?. 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
Vorheriger Artikel:Was bedeutet Klasse in Java?Nächster Artikel:Was bedeutet Klasse in Java?