La clave para comprender la funcionalidad subyacente de los JSP es comprender los ciclos de vida a los que se adhieren.
El ciclo de vida de JSP es el proceso completo desde la creación hasta la destrucción, que es similar al ciclo de vida del servlet. La diferencia es que el ciclo de vida de JSP también incluye la compilación de archivos JSP en servlets.
Las siguientes son las etapas por las que pasa el ciclo de vida de JSP:
Fase de compilación:
El contenedor de servlet compila el archivo fuente del servlet y genera la clase de servlet.
Fase de inicialización:
Cargue la clase de servlet correspondiente al JSP, cree su instancia y llame a su método de inicialización.
Fase de ejecución:
Llame al método de servicio de la instancia de servlet correspondiente al JSP
Fase de destrucción:
Llame al método de destrucción de la instancia de servlet correspondiente al JSP y luego destruya la instancia de servlet
Obviamente, las cuatro etapas principales del ciclo de vida de JSP son muy similares al ciclo de vida del servlet, como se muestra a continuación:
Cuando el navegador solicita una página JSP, el motor JSP primero verificará si es necesario compilar este archivo. Si este archivo no se ha compilado o se ha modificado desde la última compilación, compile el archivo JSP.
El proceso de compilación consta de tres pasos:
Analizar archivos JSP.
Convierta archivos JSP en servlets.
Compile el servlet.
Después de que el contenedor carga el archivo JSP, llama al método jspInit() antes de proporcionar cualquier servicio a la solicitud. Si necesita realizar tareas de inicialización JSP personalizadas, simplemente anule el método jspInit(), así:
public void jspInit(){ // código de inicialización}
En términos generales, el programa solo se inicializa una vez y lo mismo ocurre con los servlets. Normalmente puede inicializar la conexión de la base de datos, abrir el archivo y crear la tabla de consulta en el método jspInit().
Esta etapa describe todas las interacciones relacionadas con solicitudes en el ciclo de vida de JSP hasta su destrucción.
Cuando la página web JSP complete la inicialización, el motor JSP llamará al método _jspService().
El método _jspService() requiere un objeto HttpServletRequest y un objeto HttpServletResponse como parámetros, como el siguiente:
void _jspService(solicitud HttpServletRequest, respuesta HttpServletResponse){ // código de procesamiento del lado del servidor}
El método _jspService() se llama una vez en cada solicitud y es responsable de generar la respuesta correspondiente, y también es responsable de generar respuestas para los 7 métodos HTTP, como GET, POST, DELETE, etc.
La fase de destrucción del ciclo de vida de JSP describe lo que sucede cuando una página web JSP se elimina del contenedor.
El método jspDestroy() en JSP es equivalente al método de destrucción en servlet. Anule el método jspDestroy() cuando necesite realizar cualquier trabajo de limpieza, como liberar la conexión de la base de datos o cerrar la carpeta, etc.
El formato del método jspDestroy() es el siguiente:
public void jspDestroy(){ // Limpiar código}
Un ejemplo del código del ciclo de vida JSP es el siguiente:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><html><head><title>life.jsp</title></head ><cuerpo><%! privado int initVar=0; privado int serviceVar=0; privado int destroyVar=0;%> <%! public void jspInit(){ initVar++; System.out.println("jspInit(): JSP se ha inicializado "+initVar+" veces"); } public void jspDestroy(){ destroyVar++; "veces"); }%><% serviceVar++; System.out.println("_jspService(): JSP respondió a un total de "+serviceVar+" solicitudes"); String content1="Número de inicializaciones: "+initVar; String content2="Número de respuestas a solicitudes de clientes: "+serviceVar; String content3="Número de destrucciones: " +destroyVar;%> <h1>Ejemplo de prueba JSP del tutorial de w3cschool</h1><p><%=content1 %></p><p><%=content2 %></p><p><%=content3 %></p></body></html>