Sobes.tech
Junior

Miks ei ole vaja konfigureerida standardseid JSP-silte web.xml failis?

sobes.tech AI

Vastus AI-lt

Standardsed JSP-elemendid, nagu <jsp:useBean>, <jsp:include>, <jsp:forward>, <jsp:getProperty>, <jsp:setProperty>, <jsp:param> ja teised, on osa JSP-spetsifikatsioonist ja JavaServer Pages Standard Tag Library (JSTL). Need tagnõuete teegid on alati saadaval servletite konteineris (nagu Tomcat, Jetty jne), mis toetab JSP-spetsifikatsiooni.

Konfiguratsioon web.xml-s (dünaamilise rakenduse kirjeldus web-app) on tavaliselt vajalik:

  1. Servletite ja nende URL-i marsruutide deklareerimiseks.
  2. Filtrite ja nende marsruutide deklareerimiseks.
  3. Sündmuste kuulajate seadistamiseks.
  4. Rakenduse kontekstiparameetrite määratlemiseks.
  5. Kasutaja tagnõuete teekide konfiguratsioon (mitte osa JSTL-i standardist), märkides TLD-faili asukoha (Tag Library Descriptor).
  6. Sessioonide, vealehtede, tervitussaitide jms seadistused.

Standardsed JSP-elemendid ja JSTL-teegid (core, fmt, sql, xml) on juba "tuntud" ja töödeldakse JSP-mootori enda poolt. Nende töötlemine on integreeritud JSP-implementatsiooniga. Seetõttu ei ole vaja neid eraldi web.xml-s deklareerida ega täiendavaid JAR-faile alla laadida (eriti vanemate konteinerite versioonide puhul või kui soovite kasutada konkreetset JSTL-versiooni, mis erineb sisseehitatud versioonist). Standardsete tagnõuete TLD-failid (näiteks jsp.tld JAR-failides JSTL) on juba konteineris või konteiner teab, kuidas neid leida ilma selge märkimiseta web.xml-s.

Standardsete tagnõuete kasutamiseks JSP-s kasutatakse direktiivi taglib:

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

See direktiiv ütleb JSP-mootorile kasutada JSTL Core teeki prefiksiga c. uri atribuut näitab unikaalset identifikaatorit tagnõuete teegile, mida konteiner juba teab.