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:
- Deklarowania serwletów i ich mapowań URL.
- Deklarowania filtrów i ich mapowań.
- Konfiguracji słuchaczy zdarzeń.
- Definiowania parametrów kontekstowych aplikacji.
- Konfiguracji własnych bibliotek tagów (nie będących częścią standardowego JSTL), wskazując lokalizację pliku TLD (Tag Library Descriptor).
- 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.