Introducción al ciclo de vida de JSP

En este artículo, discutiremos el ciclo de vida de JSP. Páginas del servidor Java, una tecnología del lado del servidor que se encarga de procesar en el servidor.

1. ¿Dónde necesitamos JSP?

  • Bueno, si te interesa el desarrollo basado en la web y lo que vemos es crear sitios web dinámicos, entonces los JSP juegan un papel vital ya que el renderizado se realiza de forma dinámica.
  • Los JSP funcionan solo en HTML subyacente, el cuerpo de una página está constituido solo por marcas HTML básicas, pero hay ciertos marcadores de posición, parámetros, valores de lista, iteradores que solo son factibles con JSP, HTML le brinda una visualización estática solo mientras se realiza cualquier resolución. en tiempo de ejecución necesita un manejo dinámico, por lo que los JSP aparecen como una solución allí.
  • JSP permite la separación de la generación de contenido y la presentación de contenido.

Tomemos aquí un ejemplo básico que le dará una idea de esta representación dinámica.



El contenido o la lógica en el interior se representa dinámicamente y solo se pasa por el back-end.

Ahora avancemos y comprendamos el ciclo de vida de los JSP y cómo se procesan realmente en la parte frontal para proporcionar al cliente una experiencia legible o lista.

2. Ciclo de vida de JSP:

Hay ciertas fases en las que este ciclo se divide, definido de la siguiente manera:

  1. Fase de traducción: donde el archivo JSP se convierte en el archivo servlet.
  2. Fase de compilación: donde el archivo de servlet se convierte en clase de servlet.
  3. Carga de clase
  4. Instanciación del objeto servlet
  5. El contenedor de servlets llama al método jspInit () para la inicialización
  6. El contenedor de servlet llama al _jspService () para procesar la solicitud
  7. Limpieza del JSP, aquí el contenedor de servlets llamará al método jspDestroy ().

Ahora elaboremos los pasos mencionados anteriormente para tener una imagen más clara:

Paso 1

En la fase de traducción, el contenedor de servlet traduce el JSP a un servlet para que la codificación basada en etiquetas obtenga una forma equivalente en Java para que Java Virtual Machine (JVM) pueda entender eso (ya que no entenderá el lenguaje de las etiquetas) . El servidor realiza esta traducción al momento de implementar la aplicación web o cuando JSP recibe su primera solicitud de ejecución.

Paso 2

Ahora llega el momento de una compilación de código fuente, es decir, convertir el código de servlet en código de bytes java (el código de bytes java es un conjunto de instrucciones para la máquina virtual java).

Paso 3

La clase de servlet que se cargó desde el origen JSP ahora se cargará en el contenedor.

Etapa 4

Después de cargar un archivo de clase por el contenedor web, el contenedor JSP ahora usa un constructor sin argumentos para crear una instancia de la clase servlet. Ahora, una vez que el contenedor inicializa los objetos mediante una invocación del método jsplnit ().

Public void jsplnit()
(
// servlet initialization related snipped to be placed here
)

Paso 5

Ahora llega el momento de procesar las solicitudes, aquí los objetos servlet equivalentes JSP inicializados se utilizan para procesar las solicitudes del cliente. El método web invoca el método _jspService (). Esta invocación se realiza cuando el objeto servlet pasa el objeto HTTPServletRequest y el objeto HTTPServletResponse para las solicitudes y respuestas respectivas. Tenga en cuenta que no existe ninguna disposición para anular el método _jspService ().

Public void _jspService( HttpServletRequest request, HttpServletResponse response)
(
//snipped is placed here
)

Paso 6

El último paso se llama limpieza JSP, JSP tiene que ser eliminado del uso por el contenedor y el método jspDestroy () se usa para el mismo, este método se invocará solo una vez. Hay una disposición para anular este método y eso se puede hacer para los casos en los que queremos realizar nuestra acción personalizada, como la liberación de conexión para la base de datos, etc.

public void jspDestory()
(
// snippet is placed here
)

Ejemplo:

Creemos un formulario de inicio de sesión para nuestra aplicación de muestra y usaremos JSP para cierto contenido aquí.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


En el ejemplo anterior, el código colocado dentro se representa dinámicamente como mencionamos anteriormente también, ahora una vez que se envía esta solicitud, será recibida por el controlador de acción, que es básicamente una clase Java que contiene los parámetros correspondientes a los nombres mencionados en el Archivo JSP.

Un contenedor de servlet crea un objeto modal y se puede hacer referencia al contenido en otros JSP haciendo referencia a este controlador en particular.

Este tipo de enfoque basado en MVC hoy en día encuentra un lugar con tecnologías como:

  1. Spring MVC
  2. Struts 2
  3. Servlets

Spring MVC y Struts 2 han introducido su URI específico para usar JSP de manera personalizada y también introducen diferentes variedades de etiquetas para eso, como autocompletar, iterador, lista, etc.

Entonces, JSP encuentra un lugar ideal en muchos marcos debido a su flexibilidad.

Conclusión

  • Por lo tanto, aprendimos que los sitios web dinámicos tienen su interfaz representada a través de JSP, mientras que las páginas estáticas se pueden poner directamente en HTML simplemente ya que no necesitan ninguna manipulación de datos / contenido en adelante.
  • Las tecnologías modernas son compatibles con los JSP y son utilizadas por los marcos de puntal y de resorte que encuentran un lugar en grandes aplicaciones relacionadas con la banca, SCM, tiendas minoristas, etc.
  • Compatible con llamadas AJAX para renderizado dinámico.
  • Una aplicación no puede ser de una sola página, ya que cada vez que se requiere cargar una página desde el servidor.
  • Los mosaicos se pueden usar para formatos de diseño base en puntales y muelles y lo que necesitamos renderizar una y otra vez es solo cuerpo.
  • En última instancia, los códigos se convierten a HTML equivalente en la parte frontal.
  • Los JSP diferencian el concepto de presentación de contenido y la generación de contenido.
  • Varios marcos proporcionan los interceptores que facilitan la vida de los desarrolladores, como las utilidades en puntales para los procesos de carga de archivos, etc.

Artículos recomendados

Esta ha sido una guía para el ciclo de vida de JSP. Aquí discutimos la introducción, los pasos y el ejemplo del ciclo de vida de JSP. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. JSP vs ASP
  2. Preguntas de la entrevista AJAX
  3. ¿Qué es el MVC?
  4. JSP vs Servlet
  5. Iteradores en C #