Sobes.tech
Junior

Dlaczego nie jest konieczne konfigurowanie standardowych tagów JSP w pliku web.xml?

sobes.tech AI

Odpowiedź od AI

Standardowe tagi JSP, takie jak <jsp:useBean>, <jsp:include>, <jsp:forward>, <jsp:getProperty>, <jsp:setProperty>, <jsp:param> i inne, są częścią specyfikacji JSP i JavaServer Pages Standard Tag Library (JSTL). Te biblioteki tagów są zawsze dostępne w kontenerze serwletów (takim jak Tomcat, Jetty itp.), który obsługuje specyfikację JSP.

Konfiguracja w web.xml (deskriptor wdrożenia web-app) jest zwykle wymagana do:

  1. Deklarowania serwletów i ich mapowań URL.
  2. Deklarowania filtrów i ich mapowań.
  3. Konfiguracji słuchaczy zdarzeń.
  4. Definiowania parametrów kontekstowych aplikacji.
  5. Konfiguracji własnych bibliotek tagów (nie będących częścią standardowego JSTL), wskazując lokalizację pliku TLD (Tag Library Descriptor).
  6. Konfiguracji sesji, stron błędów, stron powitalnych itp.

Standardowe tagi JSP i biblioteki JSTL (core, fmt, sql, xml) są już "znane" i są obsługiwane przez silnik JSP kontenera. Ich obsługiwacze są zintegrowani z implementacją JSP. Dlatego nie ma potrzeby jawnego deklarowania ich w web.xml ani pobierania dodatkowych plików JAR (z wyjątkiem starszych wersji kontenerów lub jeśli chcesz użyć określonej wersji JSTL, różnej od wbudowanej). Dla standardowych tagów ich pliki TLD (np. jsp.tld w plikach JAR JSTL) są albo już w kontenerze, albo kontener wie, jak je znaleźć bez jawnego wskazywania w web.xml.

Użycie standardowych tagów w JSP odbywa się za pomocą dyrektywy taglib:

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

Ta dyrektywa mówi silnikowi JSP, aby używał biblioteki JSTL Core z prefiksem c. Atrybut uri wskazuje na unikalny identyfikator dla biblioteki tagów, który kontener już zna.