English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La chiave per comprendere le funzionalità di base di JSP è capire il ciclo di vita che seguono.
Il ciclo di vita di JSP è l'intero processo dalla creazione alla distruzione, simile al ciclo di vita di servlet, ma include anche la compilazione del file JSP in servlet.
Ecco alcune fasi attraverso cui passa il ciclo di vita di JSP:
Fase di compilazione:
Il contenitore servlet compila il file sorgente servlet, generando la classe servlet
Fase di inizializzazione:
Caricare la classe di servlet corrispondente a JSP, creare il suo esempio e chiamare il suo metodo di inizializzazione
Fase di esecuzione:
Chiamare il metodo di servizio dell'esempio di servlet corrispondente a JSP
Fase di distruzione:
Chiamare il metodo di distruzione dell'esempio di servlet corrispondente a JSP e distruggere l'esempio di servlet
È chiaro che le quattro fasi principali del ciclo di vita di JSP sono molto simili a quelle di servlet, ecco una illustrazione:
Quando il browser richiede una pagina JSP, il motore JSP verifica prima se è necessario compilare questo file. Se il file non è stato compilato o è stato modificato dopo l'ultima compilazione, viene compilato il file JSP.
Il processo di compilazione include tre passaggi:
Analizzare il file JSP.
Convertire il file JSP in servlet.
Compilare il servlet.
Dopo che il container ha caricato il file JSP, chiamerà il metodo jspInit() prima di fornire qualsiasi servizio per la richiesta. Se si desidera eseguire compiti di inizializzazione personalizzati, sovrascrivere il metodo jspInit(), come segue:
public void jspInit(){ // Codice di inizializzazione }
Di solito il programma viene inizializzato una volta, come anche il servlet. Di solito è possibile inizializzare connessioni del database, aprire file e creare tabelle di ricerca nel metodo jspInit().
Questa fase descrive tutte le interazioni relative alla richiesta nel ciclo di vita del JSP, fino alla distruzione.
Dopo che la pagina JSP è stata inizializzata, il motore JSP chiamerà il metodo _jspService().
_jspService() richiede un oggetto HttpServletRequest e un oggetto HttpServletResponse come parametri, come segue:
void _jspService(HttpServletRequest request, HttpServletResponse response) { // Codice di elaborazione del server }
_jspService() viene chiamato una volta per ogni request e si occupa di generare la response corrispondente, e si occupa anche di generare tutte le risposte dei 7 metodi HTTP, come GET, POST, DELETE, ecc.
La fase di distruzione del ciclo di vita del JSP descrive tutto ciò che accade quando una pagina JSP viene rimossa dal container.
Il metodo jspDestroy() è equivalente al metodo di distruzione del servlet nel JSP. Quando si desidera eseguire qualsiasi lavoro di pulizia, sovrascrivere il metodo jspDestroy(), ad esempio rilasciare connessioni del database o chiudere cartelle, ecc.
La forma del metodo jspDestroy() è la seguente:
public void jspDestroy() { // Codice di pulizia }
Esempio di codice della vita del ciclo di vita JSP come segue:
<%@ 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>基础教程(oldtoolbag.com) JSP 测试示例</h1> <p><%=content1 %></p> <p><%=content2 %></p> <p><%=content3 %></p> </body> </html>
浏览器打开此页面,输出结果为: