La clé pour comprendre les fonctionnalités sous-jacentes des JSP est de comprendre les cycles de vie auxquels elles adhèrent.
Le cycle de vie JSP est l'ensemble du processus allant de la création à la destruction, qui est similaire au cycle de vie des servlets. La différence est que le cycle de vie JSP inclut également la compilation des fichiers JSP en servlets.
Voici les étapes que traverse le cycle de vie JSP :
Phase de compilation :
Le conteneur de servlet compile le fichier source du servlet et génère la classe de servlet
Phase d'initialisation :
Chargez la classe servlet correspondant à la JSP, créez son instance et appelez sa méthode d'initialisation
Phase d'exécution :
Appeler la méthode de service de l'instance de servlet correspondant à la JSP
Phase de destruction :
Appelez la méthode de destruction de l'instance de servlet correspondant à la JSP, puis détruisez l'instance de servlet
Évidemment, les quatre étapes principales du cycle de vie du JSP sont très similaires au cycle de vie du servlet, comme indiqué ci-dessous :
Lorsque le navigateur demande une page JSP, le moteur JSP vérifiera d'abord si ce fichier doit être compilé. Si ce fichier n'a pas été compilé, ou a été modifié depuis la dernière compilation, compilez le fichier JSP.
Le processus de compilation comprend trois étapes :
Analyser les fichiers JSP.
Convertissez les fichiers JSP en servlets.
Compilez la servlet.
Une fois que le conteneur a chargé le fichier JSP, il appelle la méthode jspInit() avant de fournir un service à la requête. Si vous devez effectuer des tâches d'initialisation JSP personnalisées, remplacez simplement la méthode jspInit(), comme ceci :
public void jspInit(){ // code d'initialisation}
D'une manière générale, le programme n'est initialisé qu'une seule fois, et il en va de même pour les servlets. Normalement, vous pouvez initialiser la connexion à la base de données, ouvrir le fichier et créer la table de requête dans la méthode jspInit().
Cette étape décrit toutes les interactions liées à la requête dans le cycle de vie du JSP jusqu'à sa destruction.
Une fois l'initialisation de la page Web JSP terminée, le moteur JSP appellera la méthode _jspService().
La méthode _jspService() nécessite un objet HttpServletRequest et un objet HttpServletResponse comme paramètres, comme suit :
void _jspService (demande HttpServletRequest, réponse HttpServletResponse){ // Code de traitement côté serveur}
La méthode _jspService() est appelée une fois dans chaque requête et est chargée de générer la réponse correspondante, ainsi que de générer des réponses pour les 7 méthodes HTTP, telles que GET, POST, DELETE, etc.
La phase de destruction du cycle de vie JSP décrit ce qui se passe lorsqu'une page Web JSP est supprimée du conteneur.
La méthode jspDestroy() dans JSP est équivalente à la méthode de destruction dans le servlet. Remplacez la méthode jspDestroy() lorsque vous devez effectuer un travail de nettoyage, comme libérer la connexion à la base de données ou fermer le dossier, etc.
Le format de la méthode jspDestroy() est le suivant :
public void jspDestroy(){ // Nettoyer le code}
Un exemple de code de cycle de vie JSP est le suivant :
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><html><head><title>life.jsp</title></head ><body><%! private int initVar=0; private int serviceVar=0; private int destroyVar=0;%> <%! public void jspInit(){ initVar++; System.out.println("jspInit() : JSP a été initialisé "+initVar+" fois"); } public void jspDestroy(){ destroyVar++; System.out.println("jspDestroy() : JSP a été détruit"+destroyVar+ "fois"); }%><% serviceVar++; System.out.println("_jspService() : JSP a répondu à un total de requêtes "+serviceVar+""); String content1="Nombre d'initialisations : "+initVar; String content2="Nombre de réponses aux requêtes clients : "+serviceVar; String content3="Nombre de destructions : " +destroyVar;%> <h1>Exemple de test JSP du didacticiel w3cschool</h1><p><%=content1 %></p><p><%=content2 %></p><p><%=content3 %></p></body></html>