A tag library is a collection of actions that encapsulate some functionality to be used from within a JSP page. A tag library is made available to a JSP page through a taglib directive that identifies the tag library via a URI (Universal Resource Identifier).
The URI identifying a tag library may be any valid URI as long as it can be used to uniquely identify the semantics of the tag library.
The URI identifying the tag library is associated with a Tag Library Description (TLD) file and with tag handler classes. Both Classic and Simple Tag Handlers (implemented either in Java or as tag files) can be packaged together.
The explicit web.xml map provides a explicit description of the tag libraries that are being used in a web application.
The implicit map from TLDs means that a JAR file implementing a tag library can be dropped in and used immediatedly through its stable URIs.
The use of relative URI specifications in the taglib map enables very short names in the taglib directive. For example, if the map is:
<taglib> <taglib-uri>/myPRlibrary</taglib-uri> <taglib-location>/WEB-INF/tlds/PRlibrary_1_4.tld</taglib-location> </taglib>then it can be used as:
<%@ taglib uri="/myPRlibrary" prefix="x" %>
Finally, the fallback rule allows a taglib directive to refer directly to the TLD. This arrangement is very convenient for quick development at the expense of less flexibility and accountability. For example, in the case above, it enables:
<%@ taglib uri="/WEB-INF/tlds/PRlibrary_1_4.tld" prefix="x" %>
EL expressions will be ignored by default in JSP 1.2 applications. When upgrading a web application to JSP 2.0, EL expressions will be interpreted by default. The escape sequence '\$' can be used to escape EL expressions that should not be interpreted by the container. Alternatively, the isELIgnored page directive attribute, or the <el-ignored> configuration element can be used to deactivate EL for entire translation units.
The default mode for JSP pages in a Web Application delivered using a web.xml using the Servlet 2.4 format is to evaluate EL expressions; this automatically provides the default that most applications want.
The default mode can be explicitly changed by setting the value of the el-ignored element. The el-ignored element is a subelement of jsp-property-group. It has no subelements. Its valid values are true and false.
For example, the following web.xml fragment defines a group that deactivates EL evaluation for all JSP pages delivered using the .jsp extension:
<jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>true</el-ignored> </jsp-property-group>Page authors can override the default mode through the isELIgnored attribute of the page directive.
With the addition of the EL, some JSP page authors, or page authoring groups, may want to follow a methodology where scripting elements are not allowed.
The scripting-invalid element is a subelement of jsp-property-group. It has no subelements. Its valid values are true and false. Scripting is ENABLED by default. Disabling scripting elements can be done by setting the scripting-invalid element to true in the JSP configuration.
For example, the following web.xml fragment defines a group that disables scripting elements for all JSP pages delivered using the .jsp extension:
<jsp-property-group> <url-pattern>*.jsp</url-pattern> <scripting-invalid>true</scripting-invalid> </jsp-property-group>