MTI TEK
  • Home
  • About
  • LLMs
  • Docker
  • Kubernetes
  • Java
  • All Resources
JSP | JSP - Cycle de vie des pages JSP
  1. Cycle de vie des pages JSP

  1. Cycle de vie des pages JSP
    À la réception de la première requête Http, le conteneur de servlets compile et traduit la page JSP en un code Java (qui sera traduit, à son tour, en bytecode par la JVM). Cette opération peut être refaite pour les prochaines requêtes Http si le code de la page JSP a été modifié. Le conteneur de servlets peut aussi exécuter cette opération au démarrage du serveur ou au déploiement de l'application web.

    Voici un exemple du code Java généré par Tomcat (7) pour la page « test1.jsp » :

    • Code JSP :
      <html>
      <head>
      <title>test1</title>
      </head>
      <body>
      test1
      </body>
      </html>
    • "Code Java" généré (test1_jsp.java) :
      package org.apache.jsp;
      
      import javax.servlet.*;
      import javax.servlet.http.*;
      import javax.servlet.jsp.*;
      
      public final class test1_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent {
          public void _jspInit() {
              // init code
          }
      
          public void _jspService(final HttpServletRequest request, final HttpServletResponse response) throws java.io.IOException, ServletException {
              response.setContentType("text/html");
      
              getOut().write("<html>\r\n");
              getOut().write("<head>\r\n");
              getOut().write("<title>test1</title>\r\n");
              getOut().write("</head>\r\n");
              getOut().write("<body>\r\n");
              getOut().write("test1\r\n");
              getOut().write("</body>\r\n");
              getOut().write("</html>");
          }
      
           public void _jspDestroy() {
              // destroy code
          }
      }
      Notes :
      • Le conteneur de servlets commence par charger la classe et créer une instance.
      • Ensuite la méthode _jspInit sera exécutée (appel implicite à partir de la méthode init).
      • À la réception d'une requête Http sur la page JSP, le conteneur de servlets exécutera la méthode _jspService (appel implicite à partir de la méthode service).
      • La méthode _jspDestroy sera exécutée (appel implicite à partir de la méthode destroy) une fois le conteneur de servlets décidera de détruire l'instance de la servlet.

    • Structure hiérarchique de la classe Java générée (test1_jsp.java) :
      java.lang.Object
         -
        /|\
         |[extends]
         |                                     [implements]
      javax.servlet.GenericServlet           ---------------> javax.servlet.Servlet, javax.servlet.ServletConfig
         -
        /|\
         |[extends]
         |
      javax.servlet.http.HttpServlet                           javax.servlet.jsp.JspPage
         -                                                         -
        /|\                                                       /|\
         |[extends]                                                |[extends]
         |                                     [implements]        |
      org.apache.jasper.runtime.HttpJspBase  --------------->  javax.servlet.jsp.HttpJspPage
         -
        /|\
         |[extends]
         |
      org.apache.jsp.test1_jsp
© 2025 mtitek