Sobes.tech
Junior

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:

  1. Vyhlásenie servletov a ich mapovaní URL.
  2. Vyhlásenie filtrov a ich mapovaní.
  3. Konfiguráciu poslucháčov udalostí.
  4. Definovanie parametrov kontextu aplikácie.
  5. 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).
  6. 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á.