Professional Java Server Programming J2EE Edition Chapter 12
Deploying and Packaging Tag Libraries
There are three main ways of deploying and using tag libraries with a JSP engine. JSP developers must be
familiar with all three, because each of them calls for slightly different syntax in the taglib directive. (This
means that JSPs need to be modified slightly if they are to be deployed in a different way surely an
oversight in the JSP specification.)
No Packaging
The first and simplest means of deployment is simply placing the tag library descriptor under the server's
document root, and the Java classes required to implement the tags in the server (or system) classpath. There
is no attempt to package a tag library or an application. In this case, the taglib directive will look like this:
<%@ taglib uri="./hello.tld" prefix="examples" %>
The uri is simply a path on the host server, which may be relative (as in this example) or absolute. In this
approach, the tag library desciptor (although not the classes implementing the tag handler) is always publicly
available: anyone could view it by simply typing in its URL. This approach is easy to work with, but can
create problems at deployment time: the JSP engine or system's classpath has to be hand edited to include the
classes implementing the tag.
WAR
In a second approach to deployment, the tag library descriptor, the Java classes required to implement the
tags, and the JSPs that use the tag library can be shipped together as a web application, in a Web ARchive file
(better known a WAR file). This is the approach we've taken in this chapter. It is very attractive because it
offers painless portability between servers and very easy deployment. In this case, the taglib directive will
look like this:
<%@ taglib uri="/hello" prefix="examples" %>
Note that we don't specify the actual filename of the TLD, so there is no need to use the TLD extension. The
server knows where to look in the current web application's WAR for a .tld file matching this URI because
the mapping from URI to file location is specified in the web.xml file in a <taglib> element. The
complete web.xml file for our simple example looked like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN'
'http://java.sun.com/j2ee/dtds/web-app_2.2.dtd'>
<web-app>
<display-name>tagext</display-name>
<description>Tag extensions examples</description>
<session-config>
<session-timeout>0</session-timeout>
</session-config>
<taglib>
<taglib-uri>/hello</taglib-uri>
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|