JSP Lifecycle
Der Schlüssel zum Verständnis der zugrunde liegenden JSP-Funktion ist zu verstehen, dass sie mit dem Lebenszyklus entsprechen.
JSP ist der Lebenszyklus von der Erstellung bis zur Zerstörung, ähnlich dem Servlet-Lebenszyklus, mit der Ausnahme, dass die JSP-Lebenszyklus umfasst auch eine JSP-Datei in ein Servlet kompiliert wird.
Im Folgenden ist der JSP-Lebenszyklus mehrere Stufen durchlaufen:
Kompilieren Phase:
Servlet-Servlet-Container Kompilierung Quelldateien erzeugt Servlet-Klasse
- Initialisierungsphase:
Laden und JSP Servlet-Klasse entspricht, eine Instanz erstellen und seine Initialisierung Methode aufrufen
- Die Implementierungsphase:
Beispiele für Service ruft das Servlet und JSP entsprechende Verfahren
- Zerstörung Phasen:
Zerstörung Methodenaufruf und die JSP-Servlet-Instanz entspricht, dann zerstört Servlet-Instanz
Offensichtlich sind die vier Hauptphasen des Lebenszyklus von JSP und Servlet-Lebenszyklus ist sehr ähnlich wie die folgende Abbildung:
JSP-Kompilierung
Wenn ein Browser eine JSP-Seite anfordert, wird JSP-Engine müssen zunächst prüfen, ob die Datei zu kompilieren. Wenn diese Datei nicht kompiliert wird oder wurde nach dem letzten Mal geändert kompiliert, dann die JSP-Dateien zu kompilieren.
Der Übersetzungsvorgang erfolgt in drei Schritten:
- Parsing JSP-Dateien.
- Die JSP-Datei in Servlet.
- Zusammengestellt Servlet.
JSP-Initialisierung
Nachdem der Behälter JSP-Datei geladen wurde, ruft es jspInit () Methode für die Anforderung, bevor Sie Service. Wenn Sie die Initialisierung Aufgaben JSP-Replikation jspInit () -Methode auf der Linie durchzuführen, wie folgt aus:
public void jspInit(){ // 初始化代码 }
Im Allgemeinen initialisiert das Programm nur einmal, gut Servlet. Unter normalen Umständen können Sie die Datenbankverbindung in jspInit () -Methode, öffnen Sie die Datei zu initialisieren und eine Abfrage-Tabelle erstellen.
JSP Ausführung
Diese Phase beschreibt die JSP Lebenszyklus aller Interaktionen mit der Anforderung zugeordnet ist, bis sie zerstört wird.
Wenn die JSP-Seite Initialisierung abgeschlossen ist, wird JSP-Engine _jspService () -Methode aufrufen.
_jspService () -Methode erfordert ein HttpServletRequest Objekt und ein HttpServletResponse Objekt als Parameter, wie folgt aus:
void _jspService(HttpServletRequest request, HttpServletResponse response) { // 服务端处理代码 }
_jspService () -Methode wird einmal aufgerufen für jede Anforderung und ist verantwortlich für die Generierung entsprechender Antwort, und es ist verantwortlich für die Antworten auf alle sieben HTTP-Methoden wie GET zu erzeugen, POST, DELETE, und so weiter.
JSP Bereinigung
Zerstörung Bühne JSP Lifecycle beschreibt alles, wenn eine JSP-Seite entfernt von dem Behälter aufgetreten.
jspDestroy () -Methode in einer JSP-Servlet-Äquivalent zu den Vernichtungsmethoden. Wenn Sie eine Bereinigung durchführen müssen doppelte jspDestroy () -Methode, wie die Freigabe der Datenbankverbindung oder den Ordner zu schließen, und so weiter.
Format jspDestroy () Methode ist wie folgt:
public void jspDestroy() { // 清理代码 }
Beispiele
JSP Lebenszyklus der Codebeispiele sind wie folgt:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>life.jsp</title> </head> <body> <%! private int initVar=0; private int serviceVar=0; private int destroyVar=0; %> <%! public void jspInit(){ initVar++; System.out.println("jspInit(): JSP被初始化了"+initVar+"次"); } public void jspDestroy(){ destroyVar++; System.out.println("jspDestroy(): JSP被销毁了"+destroyVar+"次"); } %> <% serviceVar++; System.out.println("_jspService(): JSP共响应了"+serviceVar+"次请求"); String content1="初始化次数 : "+initVar; String content2="响应客户请求次数 : "+serviceVar; String content3="销毁次数 : "+destroyVar; %> <h1>本教程 JSP 测试实例</h1> <p><%=content1 %></p> <p><%=content2 %></p> <p><%=content3 %></p> </body> </html>
Browser öffnet die Seite, die Ausgabe ist: