Directives JSP pour la gestion des pages d'erreur 404 et 500

Les directives JSP permettent de configurer le comportement des pages web. Deux directives clés sont utilisées pour la gestion des erreurs et l'inclusion de composants réutilisables.

Utilisation de la directive page pour les pages d'erreur

La directive <%@ page %> configure des paramètres spécifiques, comme le type de contenu et la gestion des exceptions. Pour les erreurs 404 et 500, on définit des pages dédiées dans le fichier de déploiement web.xml.

Exemple de page JSP générant une erreur :

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Test Division</title>
</head>
<body>
<%
    int dividende = 15;
    int diviseur = 0;
    int resultat = dividende / diviseur; // Provoque une ArithmeticException
%>
</body>
</html>

Page pour l'erreur 404 (fichier erreur404.jsp) :

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Page Introuvable</title>
</head>
<body>
<img src="images/404.png" alt="Ressource non trouvée">
</body>
</html>

Page pour l'erreur 500 (fichier erreur500.jsp) :

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Erreur Serveur</title>
</head>
<body>
<img src="images/500.png" alt="Erreur interne du serveur">
</body>
</html>

Configuration dans web.xml pour mapper les codes d'erreur :

<error-page>
    <error-code>404</error-code>
    <location>/erreurs/erreur404.jsp</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/erreurs/erreur500.jsp</location>
</error-page>

Pour résoudre les problèmes d'affichage des images, il peut être nécessaire de redémarrer l'environnement de développement.

Inclusion de composents partagés avec les directives JSP

La directive <%@include file="" %> fusinone le contenu d'un fichier à la compilation, ce qui peut causer des conflits si des varialbes sont redéfinies. Une alternative plus flexible est l'action <jsp:include page="" %>, qui inclut les pages à l'exécution.

Structure pour les composants communs :

Fichier entete.jsp :
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<h1>En-tête du site</h1>

Fichier pied.jsp :
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<h1>Pied de page</h1>

Page de test (pagePrincipale.jsp) illustrant les deux méthodes :

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Test Inclusion</title>
</head>
<body>

<%-- Première méthode : inclusion statique --%>
<%@include file="commun/entete.jsp" %>
<p>Contenu principal</p>
<%@include file="commun/pied.jsp" %>

<hr>

<%-- Deuxième méthode : inclusion dynamique --%>
<jsp:include page="commun/entete.jsp"/>
<p>Contenu principal</p>
<jsp:include page="commun/pied.jsp"/>

</body>
</html>

En utilisant <%@include %>, si une variable nommée compteur est déclarée dans entete.jsp et dans pagePrincipale.jsp, une erreur 500 se produit. Avec <jsp:include %>, les portées des variables sont indépendantes, évitant ainsi les conflits.

Étiquettes: JSP Directive gestion d'erreurs 404 500

Publié le 6 juillet à 16h36