Sobes.tech
Junior

Защо не е необходимо да конфигурирате стандартните JSP тагове във файла web.xml?

sobes.tech AI

Отговор от AI

Стандартните JSP тагове като <jsp:useBean>, <jsp:include>, <jsp:forward>, <jsp:getProperty>, <jsp:setProperty>, <jsp:param> и други, са част от спецификацията JSP и JavaServer Pages Standard Tag Library (JSTL). Тези библиотеки с тагове винаги са налични в контейнера за сервлети (като Tomcat, Jetty и др.), който поддържа спецификацията JSP.

Конфигурацията в web.xml (дескрипторът за разгръщане web-app) обикновено е необходима за:

  1. Обявяване на сервлети и техните URL мапинги.
  2. Обявяване на филтри и техните мапинги.
  3. Конфигуриране на слушатели на събития.
  4. Определяне на параметри на контекста на приложението.
  5. Конфигуриране на персонализирани библиотеки с тагове (които не са част от стандартния JSTL), като се посочи местоположението на TLD файла (Tag Library Descriptor).
  6. Конфигуриране на сесии, страници за грешки, страници за посрещане и др.

Стандартните JSP тагове и библиотеките JSTL (core, fmt, sql, xml) вече са "запознати" и се обработват от JSP двигателя на контейнера. Техните обработчици са вградени в реализацията на JSP. Затова няма нужда да ги обявявате явно в web.xml или да изтегляте допълнителни JAR файлове (освен в стари версии на контейнера или ако искате да използвате определена версия на JSTL, различна от вградената). За стандартните тагове техните TLD файлове (например, jsp.tld в JAR файловете на JSTL) или вече са в контейнера, или контейнерът знае как да ги намери без явно указание в web.xml.

Използването на стандартните тагове в JSP се осъществява чрез директивата taglib:

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

Тази директива казва на JSP двигателя да използва библиотеката JSTL Core с префикс c. Атрибутът uri сочи към уникален идентификатор за библиотеката с тагове, който вече е известен на контейнера.