English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Cycle de vie de JSP

La clé pour comprendre les fonctionnalités sous-jacentes de JSP est de comprendre leur cycle de vie.

Le cycle de vie de JSP est le processus complet de création à la destruction, similaire au cycle de vie de servlet, mais avec la distinction que le cycle de vie de JSP inclut également la compilation du fichier JSP en servlet.

Voici quelques étapes traversées par le cycle de vie de JSP :

  • Étape de compilation :

    Le conteneur servlet compile le fichier source servlet et génère la classe servlet

  • Étape d'initialisation :

    Chargement de la classe servlet correspondante à JSP, création de son exemple et appel de sa méthode d'initialisation

  • Étape d'exécution :

    Appel de la méthode de service correspondante du servlet lié à JSP

  • Étape de destruction :

    Appel de la méthode de destruction correspondante du servlet lié à JSP, puis destruction de l'exemple de servlet

Il est évident que les quatre phases principales du cycle de vie JSP sont très similaires à celles du cycle de vie servlet, voici une illustration :

Compilation JSP

Lorsque le navigateur demande une page JSP, le moteur JSP vérifie d'abord s'il faut compiler ce fichier. Si ce fichier n'a pas été compilé ou a été modifié depuis la dernière compilation, alors compilez ce fichier JSP.

Le processus de compilation comprend trois étapes :

  • Analyser le fichier JSP.

  • Convertir le fichier JSP en servlet.

  • compiler le servlet.

Initialisation JSP

Après que le conteneur ait chargé le fichier JSP, il appelle la méthode jspInit() avant de fournir tout service pour la demande. Si vous devez exécuter des tâches d'initialisation JSP personnalisées, redéfinissez la méthode jspInit(), comme suit :

public void jspInit(){
  // Code d'initialisation
}

En règle générale, le programme n'est initialisé qu'une seule fois, comme servlet. Souvent, vous pouvez initialiser des connexions de base de données, ouvrir des fichiers et créer des tableaux de requêtes dans la méthode jspInit().

Exécution JSP

Cette phase décrit toutes les interactions liées à la demande dans le cycle de vie JSP jusqu'à sa destruction.

Après que la page JSP soit terminée l'initialisation, le moteur JSP appelle la méthode _jspService().

_jspService() nécessite un objet HttpServletRequest et un objet HttpServletResponse en tant que paramètres, comme suit :

void _jspService(HttpServletRequest request,
                 HttpServletResponse response)
{
   // code de traitement côté serveur
}

_jspService() est appelé une fois pour chaque request et est responsable de générer la response correspondante, et il est également responsable de générer toutes7réponses à des méthodes HTTP telles que GET, POST, DELETE, etc.

Nettoyage JSP

La phase de destruction du cycle de vie JSP décrit tout ce qui se passe lorsque une page JSP est supprimée du conteneur.

La méthode jspDestroy() est équivalente à la méthode de destruction dans servlet en JSP. Lorsque vous devez exécuter toute tâche de nettoyage, redéfinissez la méthode jspDestroy(), par exemple libérer les connexions de base de données ou fermer les dossiers, etc.

Le format de la méthode jspDestroy() est le suivant :

public void jspDestroy()
{
   // Code de nettoyage
}

Exemple en ligne

Exemple de code de cycle de vie JSP comme indiqué ci-dessous :

<%@ 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ée"+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 à ",+serviceVar+"requêtes");
  String content1="Nombre d'initialisations : "+initVar;
  String content2="Nombre de réponses à la demande client : "+serviceVar;
  String content3="Nombre de destructions : "+destroyVar;
%>
<h1>Tutoriel de base(oldtoolbag.com) Test JSP</h1>
<p><%=content1 %></p>
<p><%=content2 %></p>
<p><%=content3 %></p>
</body>
</html>

Ouvrez cette page dans le navigateur, le résultat de la sortie est :