Sobes.tech
Junior

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:

  1. Die Deklaration von Servlets und deren URL-Mappings.
  2. Die Deklaration von Filtern und deren Mappings.
  3. Die Konfiguration von Event-Listenern.
  4. Die Definition von Anwendungskontextparametern.
  5. Die Konfiguration benutzerdefinierter Tag-Bibliotheken (die nicht Teil von JSTL sind), wobei der Speicherort der TLD-Datei (Tag Library Descriptor) angegeben wird.
  6. 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.