Articles

Les événements du cycle de vie JSP expliqués

Les JSP sont en fait des servlets, comme vous l’avez déjà vu. Le conteneur convertira tous les fichiers JSP en servlets avant de les exécuter. Les JSP fournissent simplement un moyen facile de créer des composants contenant du code non java.

Une fois qu’une page JSP est créée et déployée, le conteneur effectue des événements de cycle de vie, ce qui inclut également l’appel de certaines de ses méthodes similaires aux événements de cycle de vie des servlets.

  1. Traduction de page JSP (phases de validation, de traduction, de compilation)
  2. Classe de charge
  3. Instancier
  4. La méthode jspInit est appelée
  5. La méthode _jspService est appelée
  6. La méthode jspDestroy est appelée

Traduction de page JSP (phases de validation, de traduction, de compilation)

La validation est effectuée avant la traduction. La vérification de la syntaxe se produit et toutes les références aux bibliothèques de balises, aux actions et aux fonctions EL dans le JSP sont validées pour s’assurer qu’elles existent et sont accessibles à la page, et en cas de problème, une erreur se produit et empêche le processus de traduction de se poursuivre.

Avant validation, la page JSP est convertie en une vue XML et cette vue xml est ensuite validée et traduite.

La page d’entrée JSP initiale est traduite en code source de servlet. Ce faisant, il écrira les instructions d’impression pour chacune de vos lignes non java dans le JSP. Ce servlet généré doit implémenter HttpJspPage ou son JspPage parent en fonction de si l’environnement est basé sur HTTP ou non. Blog connexe: formation angulaire à Chennai

  • Un fournisseur aura généralement un servlet de base JSP spécialisé, étendant et implémentant toutes les classes ou interfaces requises. Dans Tomcat, cela s’appelle org.Apache.Jasper.Runtime.Base de données HTTPJSP. HttpJspBase étend HttpServlet et GenericServlet, et implémente HttpJspPage, JspPage, Serializable, Servlet, ServletConfig.Le code source de la servlet

est ensuite compilé dans un fichier de classe de servlet.

Sorties

  • Il y a deux sorties dans la phase de translation.
  • Le premier est une sortie intermédiaire : un fichier source Java pour une servlet.
  • Le second est le fichier de classe compilé à partir de la source de la servlet.
  • Le fichier de classe est conservé pour une utilisation future, et la plupart des conteneurs JSP peuvent conserver ou vous donner une option vous permettant de conserver la source de la servlet à des fins de débogage.
  • Dans Tomcat, la source Java de servlet générée et la classe compilée lors de la traduction JSP seront, par défaut, conservées dans le répertoire < Répertoire d’installation-Tomcat>/work/Catalina/localhost/< répertoire de contexte >/org/apache/jsp.

Timing

  • Même si un conteneur JSP a une discrétion quant au moment de la traduction, par défaut (dans la plupart des cas), le JSP est compilé dans une servlet, puis chargé la première fois qu’il est accédé.
  • Cela peut entraîner un petit retard pour la première requête, mais il n’y aura pas de retard dans les requêtes suivantes.
  • Dans certains serveurs d’applications, vous pouvez également précompiler des JSP avant de les ajouter dans des fichiers JAR.

Erreurs

  • Si une page ne parvient pas à se traduire, une requête HTTP pour la page doit donner lieu à un code d’état 500 (erreur du serveur) communiqué dans la réponse HTTP.

Classe de charge

  • La classe de servlet générée est chargée à l’aide du chargeur de classe de l’application.

Instanciez

  • Une instance de la classe servlet est créée.
  • Pour chaque déclaration de mappage de servlet du JSP dans le web.xml (similaire aux servlets), une nouvelle instance en plus de l’instance de fichier JSP standard est créée. Si j’ai une page JSP dans la racine du contexte et que j’ai également enregistré la même page JSP sur le web.xml, j’aurai deux instances de ce JSP créées.

La méthode jspInit est appelée

  • Vous pouvez remplacer cette méthode.

La méthode _jspService est appelée

  • Lorsque des requêtes sont effectuées, le conteneur appelle la méthode service (request, response) de la servlet générée, qui doit appeler la méthode _jspService(), en transmettant les paramètres de requête et de réponse.
  • Nous ne devons pas remplacer _jspService() de notre page JSP. Cette méthode représente la source de votre page sous forme de code Java — c’est aux générateurs de pages du conteneur d’implémenter cette méthode pour chaque JSP individuel.
  • Cependant, la spécification JSP est suffisamment flexible pour s’adapter à tout protocole de requête / réponse que vous souhaitez implémenter en remplaçant cette méthode; et pour cela seulement, vous devez remplacer la méthode _jspService.

La méthode jspDestroy est appelée

  • Appelée avant que l’instance du servlet JSP ne soit annulée et récupérée

Points importants à retenir

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.