Prečo nie je potrebné konfigurovať štandardné značky JSP v súbore web.xml?
sobes.tech AI
Odpoveď od AI
Štandardné JSP značky, ako <jsp:useBean>, <jsp:include>, <jsp:forward>, <jsp:getProperty>, <jsp:setProperty>, <jsp:param> a ďalšie, sú súčasťou špecifikácie JSP a JavaServer Pages Standard Tag Library (JSTL). Tieto knižnice značiek sú vždy dostupné v kontajneri servletov (ako Tomcat, Jetty a pod.), ktorý podporuje špecifikáciu JSP.
Konfigurácia v web.xml (deskriptor nasadenia web-app) je zvyčajne potrebná pre:
- Vyhlásenie servletov a ich mapovaní URL.
- Vyhlásenie filtrov a ich mapovaní.
- Konfiguráciu poslucháčov udalostí.
- Definovanie parametrov kontextu aplikácie.
- Konfiguráciu vlastných knižníc značiek (ktoré nie sú súčasťou štandardného JSTL), uvádzaním umiestnenia TLD súboru (Tag Library Descriptor).
- Konfiguráciu relácií, chybových stránok, uvítacích stránok a pod.
Štandardné JSP značky a knižnice JSTL (core, fmt, sql, xml) sú už "známe" a spracováva ich JSP engine kontajnera. Ich spracovatelia sú integrovaní do implementácie JSP. Preto nie je potrebné ich výslovne deklarovať v web.xml ani sťahovať ďalšie JAR súbory (okrem starších verzií kontajnera alebo ak chcete použiť špecifickú verziu JSTL odlišnú od zabudovanej). Pre štandardné značky sú ich TLD súbory (napríklad jsp.tld v rámci JSTL JAR súborov) buď už v kontajneri, alebo kontajner vie, ako ich nájsť bez explicitného uvádzania v web.xml.
Použitie štandardných značiek v JSP sa vykonáva pomocou direktívy taglib:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Táto direktíva hovorí JSP engine, aby používal JSTL Core knižnicu s prefixom c. Atribút uri odkazuje na jedinečný identifikátor pre knižnicu značiek, ktorý kontajner už pozná.