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:
- Declaratie van servlets en hun URL-mappings.
- Declaratie van filters en hun mappings.
- Configuratie van event listeners.
- Definiëring van applicatiecontextparameters.
- 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.
- 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.