Warum ist es nicht erforderlich, die Standard-JSP-Tags in der Datei web.xml zu konfigurieren?
sobes.tech KI
Antwort von AI
Standard-JSP-Tags wie <jsp:useBean>, <jsp:include>, <jsp:forward>, <jsp:getProperty>, <jsp:setProperty>, <jsp:param> und andere sind Teil der JSP-Spezifikation und der JavaServer Pages Standard Tag Library (JSTL). Diese Tag-Bibliotheken sind immer im Servlet-Container (wie Tomcat, Jetty usw.), der die JSP-Spezifikation unterstützt, verfügbar.
Die Konfiguration in web.xml (der Deployment-Deskriptor web-app) ist in der Regel erforderlich für:
- Die Deklaration von Servlets und deren URL-Mappings.
- Die Deklaration von Filtern und deren Mappings.
- Die Konfiguration von Event-Listenern.
- Die Definition von Anwendungskontextparametern.
- Die Konfiguration benutzerdefinierter Tag-Bibliotheken (die nicht Teil von JSTL sind), wobei der Speicherort der TLD-Datei (Tag Library Descriptor) angegeben wird.
- Die Konfiguration von Sitzungen, Fehlerseiten, Begrüßungsseiten usw.
Standard-JSP-Tags und JSTL-Bibliotheken (core, fmt, sql, xml) sind bereits "bekannt" und werden vom JSP-Engine des Containers verarbeitet. Ihre Handler sind in die JSP-Implementierung integriert. Daher ist es nicht notwendig, sie explizit in web.xml zu deklarieren oder zusätzliche JAR-Dateien herunterzuladen (außer in alten Versionen des Containers oder wenn eine bestimmte Version von JSTL verwendet werden soll, die von der eingebauten abweicht). Für Standard-Tags sind ihre TLD-Dateien (z.B. jsp.tld innerhalb der JSTL-JARs) entweder bereits im Container vorhanden oder der Container weiß, wie er sie findet, ohne sie explizit in web.xml anzugeben.
Die Verwendung der Standard-Tags in JSP erfolgt mit der Direktive taglib:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Diese Direktive weist den JSP-Engine an, die JSTL Core-Bibliothek mit dem Präfix c zu verwenden. Das uri-Attribut zeigt auf eine eindeutige Kennung für die Tag-Bibliothek, die der Container bereits kennt.