It parses the JSP.
When the container encounters a custom tag, it checks for a matching prefix in the
JSP's list of taglib directives.
When it finds a match, it gets the defined uri .
After it has a URI, it then looks in the Web application's web.xml file for a taglib entry
where the taglib-uri and the JSP's taglib uri match.
When it finds the matching URI, it gets the location of the tag library descriptor, which
is then used to map the appropriate tag handlers to the encountered tags.
Developing Custom JSP Tags Handlers
Now that we have finally gotten through the unpleasantness of deployment, let's actually
develop something that you can deploy. JSP custom tag handlers have a very simple hierarchy.
They all implement the Tag interface, either directly or through inheritance. The way they do
this depends on their type. You can develop two types of custom tags, tag with bodies and tags
without. This determines the implementation of tag handlers. Figure 19.1 shows the different
classes and their hierarchy.
F IGURE 19.1
The Custom Tag Class Hierarchy.
Tags Without Bodies
The first type of tag that we will discuss is a tag without a body. A tag with no body indicates
that the text between the beginning and ending custom tag elements will not be evaluated by
the associated tag handler.
As we stated in the previous section, all tags handlers must implement the Tag interface, but
there are helper classes for each type of tag. These helpers implement all of the Tag interface