Sobes.tech
Junior

Waarom is het niet nodig om de standaard JSP-tags te configureren in het web.xml-bestand?

sobes.tech AI

Antwoord van AI

Standaard JSP-tags, zoals <jsp:useBean>, <jsp:include>, <jsp:forward>, <jsp:getProperty>, <jsp:setProperty>, <jsp:param> en andere, maken deel uit van de JSP-specificatie en de JavaServer Pages Standard Tag Library (JSTL). Deze tagbibliotheken zijn altijd beschikbaar in de servletcontainer (zoals Tomcat, Jetty, enz.), die de JSP-specificatie ondersteunt.

De configuratie in web.xml (de deployment descriptor web-app) is meestal nodig voor:

  1. Declaratie van servlets en hun URL-mappings.
  2. Declaratie van filters en hun mappings.
  3. Configuratie van event listeners.
  4. Definiëring van applicatiecontextparameters.
  5. Configuratie van aangepaste tagbibliotheken (die niet deel uitmaken van de standaard JSTL), door de locatie van het TLD-bestand (Tag Library Descriptor) aan te geven.
  6. Configuratie van sessies, foutpagina's, welkomstpagina's, enz.

Standaard JSP-tags en JSTL-bibliotheken (core, fmt, sql, xml) zijn al "bekend" en worden verwerkt door de JSP-engine van de container. Hun handlers zijn geïntegreerd in de JSP-implementatie. Daarom is het niet nodig om ze expliciet in web.xml te declareren of extra JAR-bestanden te downloaden (behalve in oude versies van de container of als je een specifieke versie van JSTL wilt gebruiken die afwijkt van de ingebouwde). Voor standaardtags zijn hun TLD-bestanden (bijvoorbeeld jsp.tld binnen JSTL-JAR-bestanden) ofwel al in de container aanwezig, of de container weet hoe ze te vinden zonder expliciete vermelding in web.xml.

Het gebruik van standaardtags in JSP gebeurt met de taglib-directief:

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

Deze directief vertelt de JSP-engine om de JSTL Core-bibliotheek te gebruiken met het prefix c. Het uri-attribuut wijst naar een unieke identificatie voor de tagbibliotheek, die de container al kent.