Sobes.tech
Junior

Pourquoi n'est-il pas nécessaire de configurer les balises JSP standard dans le fichier web.xml?

sobes.tech IA

Réponse de l'IA

Les balises JSP standard, telles que <jsp:useBean>, <jsp:include>, <jsp:forward>, <jsp:getProperty>, <jsp:setProperty>, <jsp:param> et d'autres, font partie de la spécification JSP et de la bibliothèque de balises standard de JavaServer Pages (JSTL). Ces bibliothèques de balises sont toujours disponibles dans le conteneur de servlets (comme Tomcat, Jetty, etc.) qui supporte la spécification JSP.

La configuration dans web.xml (le descripteur de déploiement web-app) est généralement nécessaire pour :

  1. Déclarer les servlets et leurs mappages d'URL.
  2. Déclarer les filtres et leurs mappages.
  3. Configurer les écouteurs d'événements.
  4. Définir les paramètres de contexte de l'application.
  5. Configurer les bibliothèques de balises personnalisées (qui ne font pas partie de JSTL standard), en indiquant l'emplacement du fichier TLD (Descripteur de Bibliothèque de Balises).
  6. Configurer les sessions, les pages d'erreur, les pages d'accueil, etc.

Les balises JSP standard et les bibliothèques JSTL (core, fmt, sql, xml) sont déjà "connues" et traitées par le moteur JSP du conteneur. Leurs gestionnaires sont intégrés dans l'implémentation JSP. Par conséquent, il n'est pas nécessaire de les déclarer explicitement dans web.xml ni de télécharger des fichiers JAR supplémentaires (sauf dans de anciennes versions du conteneur ou si vous souhaitez utiliser une version spécifique de JSTL différente de celle intégrée). Pour les balises standard, leurs fichiers TLD (par exemple, jsp.tld dans les fichiers JAR JSTL) sont soit déjà dans le conteneur, soit le conteneur sait comment les trouver sans indication explicite dans web.xml.

L'utilisation des balises standard dans JSP se fait avec la directive taglib :

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Cette directive indique au moteur JSP d'utiliser la bibliothèque JSTL Core avec le préfixe c. L'attribut uri pointe vers un identifiant unique pour la bibliothèque de balises, que le conteneur connaît déjà.