Articles

Los eventos de ciclo de vida de JSP explicados

Los JSP son en realidad servlets, como ya ha visto. El contenedor convertirá todos los archivos JSP en servlets antes de ejecutarlos. Los JSP solo proporcionan una manera fácil de crear componentes que contienen código no java.

Una vez que se crea e implementa una página JSP, el contenedor realizará algunos eventos de ciclo de vida, lo que también incluye llamar a algunos de sus métodos similares a los eventos de ciclo de vida de servlet.

  1. Traducción de páginas JSP (fases de validación, traducción, compilación)
  2. Clase de carga
  3. Instanciar
  4. El método jspInit se llama
  5. El método _jspService se llama
  6. El método jspDestroy se llama

Traducción de páginas JSP (fases de validación, traducción, compilación)

La validación se realiza antes de la traducción. La comprobación de sintaxis ocurre y todas las referencias a bibliotecas de etiquetas, acciones y funciones EL en el JSP se validan para garantizar que existen y son accesibles para la página, y si hay algún problema, se produce un error que impide que el proceso de traducción continúe.

Antes de la validación, la página JSP se convierte en una vista XML y esta vista xml se valida y traduce.

La página de entrada inicial de JSP se traduce al código fuente de servlet. Mientras lo hace, escribirá las instrucciones print para cada una de sus líneas no java en el JSP. Este servlet generado debe implementar HttpJspPage o su JspPage padre basado en si el entorno está basado en HTTP o no. Blog relacionado: capacitación angular en Chennai

  • Un proveedor normalmente tendrá un servlet base JSP especializado, que extenderá e implementará todas las clases o interfaces requeridas. En Tomcat, esto se llama org.apache.jaspe.ejecución.HttpJspBase. HttpJspBase extiende HttpServlet y GenericServlet, e implementa HttpJspPage, JspPage, Serializable, Servlet, ServletConfig.

El código fuente de Servlet se compila en un archivo de clase servlet.

Salidas

  • Hay dos salidas dentro de la fase de traducción.
  • La primera es una salida provisional: un archivo fuente Java para un servlet.
  • El segundo es el archivo de clase compilado desde el origen del servlet.
  • El archivo de clase se conserva para uso futuro, y la mayoría de los contenedores JSP pueden conservar o darle una opción mediante la cual puede conservar el origen de servlet para fines de depuración.
  • En Tomcat, el código fuente Java de servlet generado y la clase compilada durante la traducción de JSP se mantendrán, de forma predeterminada, en el directorio < Tomcat-Installation-Directory> / work/Catalina/localhost/<context – directory>/org/apache / jsp.

Timing

  • Aunque un contenedor JSP tiene discreción con respecto a cuándo se produce la traducción, por defecto (en la mayoría de los casos) el JSP se compila en un servlet y luego se carga la primera vez que se accede.
  • Esto puede causar un pequeño retraso para la primera solicitud, pero no habrá ningún retraso en las solicitudes posteriores.
  • En ciertos servidores de aplicaciones, también puede precompilar JSP antes de agregarlos a JARs.

Errores

  • Si una página no se traduce,una solicitud HTTP para la página debe dar lugar a un código de estado 500 (error de servidor) comunicado de vuelta en la respuesta HTTP.

Clase de carga

  • La clase servlet generada se carga utilizando el cargador de clases de la aplicación.

Instanciar

  • Se crea una instancia de la clase servlet.
  • Para cada declaración de mapeo de servlet del JSP en la web.xml (similar a los servlets), se crea una nueva instancia además de la instancia de archivo JSP estándar. Si tengo una página JSP en la raíz de contexto, y también he registrado la misma página JSP en la web.xml, tendré dos instancias de ese JSP creadas.

El método jspInit se llama

  • Puede anular este método.

El método _jspService se llama

  • Cuando se realizan solicitudes, el contenedor llama al método service(request, response) del servlet generado, que debería llamar al método _jspService(), pasando los parámetros request y response.
  • No debemos anular _jspService () de nuestra página JSP. Este método representa su fuente de página en forma de código Java — depende de los generadores de páginas del contenedor implementar este método para cada JSP individual.
  • Sin embargo, la especificación JSP es lo suficientemente flexible para adaptarse a cualquier protocolo de solicitud /respuesta que desee implementar al anular este método; y para eso solo necesita anular el método _jspService.

El método jspDestroy se llama

  • Se llama antes de que la instancia del servlet JSP se anule y se recopile basura

Puntos importantes a recordar

Deja una respuesta

Tu dirección de correo electrónico no será publicada.