You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by gl...@locus.apache.org on 2000/11/11 16:48:05 UTC

cvs commit: jakarta-taglibs/response/doc/web index.html

glenn       00/11/11 07:48:05

  Modified:    response/doc/web index.html
  Log:
  Cleanup for release
  
  Revision  Changes    Path
  1.2       +2082 -52  jakarta-taglibs/response/doc/web/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/response/doc/web/index.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- index.html	2000/09/26 20:00:42	1.1
  +++ index.html	2000/11/11 15:48:05	1.2
  @@ -1,52 +1,2082 @@
  -<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
  -<html>
  -<head>
  -   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  -   <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; FreeBSD 3.4-RELEASE i386) [Netscape]">
  -   <title>Documentation for the RESPONSE Tag Library</title>
  -</head>
  -<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
  -
  -<center>
  -<h1>
  -Documentation for the RESPONSE Tag Library</h1></center>
  -
  -<h3>
  -1. INTRODUCTION</h3>
  -The RESPONSE custom tag library contains tags which can be used to set
  -all the information for an HTTP response for a JSP page.
  -<h3>
  -2. PREREQUISITE&nbsp;SOFTWARE</h3>
  -This custom tag library requires no software other than a servlet container
  -that supports the JavaServer Pages Specification, version 1.1.
  -<h3>
  -3. CONFIGURATION INFORMATION</h3>
  -Follow these steps to configure your web application with this tag library:
  -<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Copy the tag library descriptor file
  -(response/response.tld) to the /WEB-INF subdirectory of your web application.
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Copy the tag library JAR file (response/response.jar)
  -to the /WEB-INF/lib subdirectory of your web application.
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Add a &lt;taglib> element to your web
  -application deployment descriptor in /WEB-INF/web.xml like this:
  -<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;taglib>
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  -&lt;taglib-uri>http://jakarta.apache.org/taglibs/response-1.0&lt;/taglib-uri>
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  -&lt;taglib-location>/WEB-INF/response.tld&lt;/taglib-location>
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/taglib>
  -<p>To use the tags from this library in your JSP pages, add the following
  -directive at the top of each page:
  -<p>&nbsp;&nbsp;&nbsp; &lt;%@ taglib uri="http://jakarta.apache.org/taglibs/response-1.0"
  -prefix="req" %>
  -<p>where "req" is the tag name prefix you wish to use for tags from this
  -library. You can change this value to any prefix you like.
  -<h3>
  -4. TAG DOCUMENTATION</h3>
  -This custom tag library includes a number of tags which are documented
  -using <a href="javadoc/index.html">javadocs</a>.
  -<h3>
  -5. USAGE EXAMPLES</h3>
  -See the example application (response/response-examples.war) for examples
  -of the usage of the tags from this custom tag library.
  -</body>
  -</html>
  +<HTML>
  +
  +<HEAD>
  + <TITLE>Jakarta Project: RESPONSE JSP Tag Library</TITLE>
  +</HEAD>
  +
  +<BODY BGCOLOR="white">
  +<CENTER>
  +<H1>Jakarta Project: RESPONSE JSP Tag Library</H1>
  +<H3>Version 1.0</H3>
  +</CENTER>
  +
  +<H3>Table of Contents</H3>
  +<A HREF="#overview">Overview</A><BR>
  +<A HREF="#requirements">Requirements</A><BR>
  +<A HREF="#config">Configuration</A><BR>
  +<A HREF="#summary">Tag Summary</A><BR>
  +<A HREF="#reference">Tag Reference</A><BR>
  +<A HREF="#codes">HTTP Error and Status Codes</A><BR>
  +<A HREF="#examples">Examples</A><BR>
  +<A HREF="#javadocs">Javadocs</A><BR>
  +<A HREF="#history">Revision History</A><BR>
  +<BR>
  +
  +<A NAME="overview"><H3>Overview</H3></A>
  +<P>The RESPONSE custom tag library contains tags which can be used
  +to set all the information for an HTTP response for a JSP page.</P>
  +<P>This includes creating cookies and setting their values, setting
  +HTTP headers, returning back an HTTP error, or sending an HTTP redirect.</P>
  +
  +<A NAME="requirements"><H3>Requirements</H3></A>
  +<P>This custom tag library requires no software other than a servlet container
  +that supports the JavaServer Pages Specification, version 1.1.</P>
  +
  +<A NAME="config"><H3>Configuration</H3></A>
  +<P>Follow these steps to configure your web application with this tag library:</P>
  +<UL>
  +<LI>Copy the tag library descriptor file (response/response.tld) to the /WEB-INF
  +subdirectory of your web application.</LI>
  +<LI>Copy the tag library JAR file (response/response.jar) to the /WEB-INF/lib
  +subdirectory of your web application.</LI>
  +<LI>Add a &lt;taglib&gt; element to your web application deployment descriptor
  +in /WEB-INF/web.xml like this:<BR>
  +<BR>
  +<PRE>
  +&lt;taglib&gt;
  +  &lt;taglib-uri&gt;http://jakarta.apache.org/taglibs/response-1.0&lt;/taglib-uri&gt;
  +  &lt;taglib-location&gt;/WEB-INF/response.tld&lt;/taglib-location&gt;
  +&lt;/taglib&gt;
  +</PRE>
  +</LI>
  +</UL>
  +<P>To use the tags from this library in your JSP pages, add the following
  +directive at the top of each page: </P>
  +<PRE>
  +&lt;%@ taglib uri=&quot;http://jakarta.apache.org/taglibs/response-1.0&quot; prefix=&quot;res&quot; %&gt;
  +</PRE>
  +<P>where &quot;<I>res</I>&quot; is the tag name prefix you wish to use for
  +tags from this library. You can change this value to any prefix you like.
  +For the examples below the prefix &quot;<B>res</B>&quot; is used.</P>
  +
  +<A NAME="summary"><H3>Tag Summary</H3></A>
  +<TABLE>
  + <TR>
  +  <TD COLSPAN="2"><B>Response Tags</B></TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#encodeurl">encodeurl</A></TD>
  +  <TD>Encode a URL with the JSESSIONID if necessary</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#encoderedirecturl">encoderedirecturl</A></TD>
  +  <TD>Encode a URL with the JSESSIONID for use with sendredirect</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#senderror">senderror</A></TD>
  +  <TD>Return an HTTP error as the HTTP Response</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#setstatus">setstatus</A></TD>
  +  <TD>Set the status code for the HTTP Response</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#sendredirect">sendredirect</A></TD>                    
  +  <TD>Send a redirect as the HTTP Response</TD>                            
  + </TR>
  + <TR>
  +  <TD><A HREF="#setcontenttype">setcontenttype</A></TD>                                      
  +  <TD>Sets the content type of the response being sent to the client</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#flushbuffer">flushbuffer</A></TD>
  +  <TD>Forces any content in the buffer to be written to the client</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#iscommitted">iscommitted</A></TD>
  +  <TD>Tests whether the HTTP Response has been committed to the client</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#skippage">skippage</A></TD>
  +  <TD>Skips the remainder of the JSP page</TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">&nbsp;</TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2"><B>Cookie Tags</B></TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#addcookie">addcookie</A></TD>
  +  <TD>Add a cookie to an Http Response</TD>
  + <TR><TD>&nbsp;</TD><TD><TABLE>
  + <TR>
  +  <TD><A HREF="#value">value</A></TD>
  +  <TD>Set a cookie value</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#comment">comment</A></TD>
  +  <TD>Set a cookie comment</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#domain">domain</A></TD>
  +  <TD>Set a cookie domain</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#maxage">maxage</A></TD>
  +  <TD>Set a cookie maxage</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#path">path</A></TD>            
  +  <TD>Set a cookie path</TD>                   
  + </TR>
  + <TR>
  +  <TD><A HREF="#secure">secure</A></TD>            
  +  <TD>Set whether a cookie requires secure HTTPS</TD>                   
  + </TR>
  + <TR>
  +  <TD><A HREF="#version">version</A></TD>            
  +  <TD>Set a cookie version</TD>                   
  + </TR>
  + </TABLE></TD></TR>
  + <TR>
  +  <TD COLSPAN="2">&nbsp;</TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2"><B>Header Tags</B></TD>           
  + </TR>
  + <TR>
  +  <TD><A HREF="#addheader">addheader</A></TD>
  +  <TD>Add a single HTTP header</TD>
  + </TR>
  + <TR>
  +  <TD><A HREF="#addintheader">addintheader</A></TD>      
  +  <TD>Add a single HTTP integer header</TD>                            
  + </TR>
  + <TR>
  +  <TD><A HREF="#adddateheader">adddateheader</A></TD>      
  +  <TD>Add a single HTTP date header</TD>                            
  + </TR>
  + <TR>
  +  <TD><A HREF="#setheader">setheader</A></TD>      
  +  <TD>Set a single HTTP header</TD>                            
  + </TR>
  + <TR>
  +  <TD><A HREF="#setintheader">setintheader</A></TD>      
  +  <TD>Set a single HTTP integer header</TD>                            
  + </TR>
  + <TR>
  +  <TD><A HREF="#setdateheader">setdateheader</A></TD>      
  +  <TD>Set a single HTTP date header</TD>                            
  + </TR>
  + <TR>
  +  <TD><A HREF="#containsheader">containsheader</A></TD>      
  +  <TD>Test whether the HTTP Response contains an HTTP header</TD>                            
  + </TR>
  +</TABLE>
  +
  +<A NAME="reference"><H3>Tag Reference</H3></A>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%"  CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="encodeurl">&nbsp;encodeurl</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Encode a URL with the JSESSIONID if necessary.
  +   Uses the tag body as the URL to encode, outputs the URL after encoding it.</TD>
  + </TR>
  + <TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">The tag body is used as the URL to encode.</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>            
  +    </TR>                    
  +    <TR>
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>            
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- test the encodeurl tag --%&gt;
  +Go to 
  +&lt;a href="&lt;res:encodeurl&gt;/myapp.jsp&lt;/res:encodeurl&gt;"&gt;      
  +My Application&lt;/a&gt;.
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%"  CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="encoderedirecturl">&nbsp;encoderedirecturl</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Encode a URL with the JSESSIONID for use with sendredirect.
  +   Uses the tag body as the URL to encode, outputs the URL after encoding it.</TD>
  + </TR>
  + <TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">The tag body is used as the URL to encode.</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- use the encoderedirecturl tag to redirect to index.html --%&gt;
  +&lt;res:sendredirect&gt;&lt;res:encoderedirecturl&gt;index.html&lt;/res:encoderedirecturl&gt;&lt;/res:sendredirect&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%"  CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="senderror">&nbsp;senderror</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Return an HTTP error as the HTTP Response.</TD>
  + </TR>
  + <TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">The tag body is used as the error message.</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;error</B></TD>
  +        <TD WIDTH="20%">&nbsp;Yes</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">The HTTP error status code to return, for example
  +         <B>SC_UNAUTHORIZED</B>. See the
  +         <A HREF="#codes">HTTP Error and Status Codes</A> for a list of
  +         values this can be set to.</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;reset</B></TD>
  +        <TD WIDTH="20%">&nbsp;No</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR> 
  +        <TD COLSPAN="3">Set to <b>true</b> or <b>false</b>.  If set to
  +         true the buffer, headers, and status code will be reset.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Send back an HTTP error that user is not authorized --%&gt;
  +&lt;res:senderror error="SC_UNAUTHORIZED"&gt;Not Authorized!&lt;/res:senderror&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%"  CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="setstatus">&nbsp;setstatus</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Set the status code for the HTTP Response.</TD>
  + </TR>
  + <TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">empty</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;status</B></TD>
  +        <TD WIDTH="20%">&nbsp;Yes</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">The HTTP status code to return, for example
  +         <B>SC_OK</B>. See the
  +         <A HREF="#codes">HTTP Error and Status Codes</A> for a list of
  +         values this can be set to.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Send back an HTTP OK status --%&gt;
  +&lt;res:setstatus status="SC_OK"/&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="sendredirect">&nbsp;sendredirect</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Send a redirect to a URL as the HTTP Response.</TD>
  + </TR>
  + <TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Tag body is used as URL to redirect to.</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Redirect back to the site root index.html --%&gt;
  +&lt;res:sendredirect&gt;&lt;res:encoderedirecturl&gt;/index.html&lt;/res:encoderedirecturl&gt;&lt;/res:sendredirect&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="setcontenttype">&nbsp;setcontenttype</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0</TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Sets the content type of the response being sent to the client.</TD>
  + </TR>
  + <TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Content Type is set to the contents of the tag body.</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- set the content type to text/html --%&gt;
  +&lt;res:setcontenttype&gt;text/html&lt;/res:setcontenttype&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="flushbuffer">&nbsp;flushbuffer</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Forces any content in the buffer to be written to the client.</TD>
  + </TR>
  + <TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">Empty</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    <TR>
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- flush output buffer to client --%&gt;
  +&lt;res:flushbuffer/&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%"  CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="iscommitted">&nbsp;iscommitted</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="3">Tests whether the HTTP Response has been committed to the client.</TD>
  + </TR>
  + <TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;value</B></TD>
  +        <TD WIDTH="20%">&nbsp;No</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR> 
  +        <TD COLSPAN="3">If value is set to false the iscommitted tag includes
  +         body of tag if the response is not yet committed.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- see if response output is committed --%&gt;
  +&lt;res:iscommitted&gt;
  +   Response is already committed!
  +&lt;/res:iscommitted&gt;
  +&lt;res:iscommitted value="false"&gt;
  +   Response is not committed yet.
  +&lt;/res:iscommitted&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="skippage">&nbsp;skippage</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Skips the remainder of the JSP page.</TD>
  + </TR>
  + <TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">empty</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Skip the remainder of the JSP page --%&gt;
  +&lt;res:skippage/&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="addcookie">&nbsp;addcookie</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Creates a cookie, a small amount of information sent by
  +   a JSP page to a Web browser, saved by the browser, and later sent
  +   back to the server. A cookie's value can uniquely identify a client,
  +   so cookies are commonly used for session management. 
  +   <P>A cookie has a name, a single value, and optional attributes such as
  +      a comment, path and domain qualifiers, a maximum age,
  +      and a version number. Some Web browsers have bugs in how they handle
  +      the optional attributes, so use them sparingly to improve the
  +      interoperability of your JSP pages.</P>
  +   <P>Cookie attributes such as the comment, value, etc. can be set
  +      statically by using the corresponding addcookie tag attribute.
  +      Or dynamically using the corresponding tag in the body of the
  +      addcookie tag.</P>
  + </TR>
  + <TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;name</B></TD>
  +        <TD WIDTH="20%">&nbsp;Yes</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">Sets the name of the cookie.</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;value</B></TD>     
  +        <TD WIDTH="20%">&nbsp;No</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">Assigns a new value to a cookie after the cookie is created.
  +         If you use a binary value, you may want to use BASE64 encoding.
  +         <P>With Version 0 cookies, values should not contain white space, brackets,
  +            parentheses, equals signs, commas, double quotes, slashes, question marks,
  +            at signs, colons, and semicolons. Empty values may not behave the same way
  +            on all browsers.</P></TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;comment</B></TD>     
  +        <TD WIDTH="20%">&nbsp;No</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">Specifies a comment that describes a cookie's purpose.
  +         The comment is useful if the browser presents the cookie to
  +         the user. Comments are not supported by Netscape Version 0 cookies.</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;domain</B></TD>     
  +        <TD WIDTH="20%">&nbsp;No</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">Specifies the domain within which this cookie should be presented.
  +        <P>The form of the domain name is specified by RFC 2109.
  +           A domain name begins with a dot (.foo.com) and means that
  +           the cookie is visible to servers in a specified Domain Name System
  +           (DNS) zone (for example, www.foo.com, but not
  +           a.b.foo.com).</P>
  +        <P>By default, cookies are only returned to the server that sent them.</P></TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;maxage</B></TD>     
  +        <TD WIDTH="20%">&nbsp;No</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">Sets the cookie maximum age in seconds.
  +        <P>A positive value indicates that the cookie will expire after
  +           that many seconds have passed. Note that the value is the
  +           maximum age when the cookie will expire, not the cookie's current age.</P>
  +        <P>A negative value means that the cookie is not stored persistently
  +           and will be deleted when the Web browser exits.</P>
  +        <P>A zero value causes the cookie to be deleted.</P>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;path</B></TD>     
  +        <TD WIDTH="20%">&nbsp;No</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">Specifies a path for the cookie to which the client should return the cookie.
  +        <P>The cookie is visible to all the pages in the directory you specify,
  +           and all the pages in that directory's subdirectories.
  +        <P>Consult RFC 2109 (available on the Internet) for more information
  +           on setting path names for cookies.</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;secure</B></TD>     
  +        <TD WIDTH="20%">&nbsp;No</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">Indicates to the browser whether the cookie should   
  +         only be sent using a secure protocol, such as HTTPS or SSL.
  +         Can be set to <b>true</b> or <b>false</b>.
  +         The default value is <b>false</b>.</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;version</B></TD>     
  +        <TD WIDTH="20%">&nbsp;No</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">Sets the version of the cookie protocol this cookie complies with.
  +         Version 0 complies with the original Netscape cookie specification.
  +         Version 1 complies with RFC 2109.
  +         Since RFC 2109 is still somewhat new, consider version 1 as experimental;
  +         do not use it yet on production sites.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>   
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>        
  +    <TR>
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Return a test cookie --%&gt;
  +&lt;res:addcookie name="test" value="Yes" comment="Test" maxage="-1" path="/example-response/"/&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>   
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="value">&nbsp;value</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Assigns a new value to a cookie after the cookie is created.
  +   If you use a binary value, you may want to use BASE64 encoding. 
  +   <P>With Version 0 cookies, values should not contain white space, brackets,
  +      parentheses, equals signs, commas, double quotes, slashes, question marks,
  +      at signs, colons, and semicolons. Empty values may not behave the same way
  +      on all browsers.</P></TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Cookie value is set to the tag body.
  +      Must be nested inside an <b>addcookie</b> tag.</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Return a test cookie --%&gt;
  +&lt;res:addcookie name="test"&gt;
  + &lt;res:value&gt;Yes&lt;/res:value&gt;
  +&lt;/res:addcookie&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="comment">&nbsp;comment</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Specifies a comment that describes a cookie's purpose.
  +   The comment is useful if the browser presents the cookie to
  +   the user. Comments are not supported by Netscape Version 0 cookies.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Cookie comment is set to the tag body.
  +      Must be nested inside an <b>addcookie</b> tag.</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Return a test cookie --%&gt;
  +&lt;res:addcookie name="test"&gt;
  + &lt;res:value&gt;Yes&lt;/res:value&gt;
  + &lt;res:comment&gt;Test Cookie&lt;/res:comment&gt;
  +&lt;/res:addcookie&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="domain">&nbsp;domain</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Specifies the domain within which this cookie should be presented. 
  +   <P>The form of the domain name is specified by RFC 2109.
  +      A domain name begins with a dot (.foo.com) and means that
  +      the cookie is visible to servers in a specified Domain Name System
  +      (DNS) zone (for example, www.foo.com, but not
  +      a.b.foo.com).</P>
  +   <P>By default, cookies are only returned to the server that sent them.</P></TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Cookie domain is set to the tag body.
  +      Must be nested inside an <b>addcookie</b> tag.</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Return a test cookie --%&gt;
  +&lt;res:addcookie name="test"&gt;
  + &lt;res:value&gt;Yes&lt;/res:value&gt;
  + &lt;res:domain&gt;www.foo.com&lt;/res:domain&gt;
  +&lt;/res:addcookie&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="maxage">&nbsp;maxage</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Sets the cookie maximum age in seconds.
  +   <P>A positive value indicates that the cookie will expire after
  +      that many seconds have passed. Note that the value is the
  +      maximum age when the cookie will expire, not the cookie's current age.</P>
  +   <P>A negative value means that the cookie is not stored persistently
  +      and will be deleted when the Web browser exits.</P>
  +   <P>A zero value causes the cookie to be deleted.</P>
  +   </TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Cookie value is set to the tag body.
  +      Must be nested inside an <b>addcookie</b> tag.</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Return a test cookie --%&gt;
  +&lt;res:addcookie name="test"&gt;
  + &lt;res:value&gt;Yes&lt;/res:value&gt;
  + &lt;res:maxage&gt;-1&lt;/res:maxage&gt;
  +&lt;/res:addcookie&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="path">&nbsp;path</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Specifies a path for the cookie to which the client should return the cookie. 
  +   <P>The cookie is visible to all the pages in the directory you specify,
  +      and all the pages in that directory's subdirectories.
  +   <P>Consult RFC 2109 (available on the Internet) for more information
  +      on setting path names for cookies.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Cookie path is set to the tag body.
  +      Must be nested inside an <b>addcookie</b> tag.</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Return a test cookie --%&gt;
  +&lt;res:addcookie name="test"&gt;
  + &lt;res:value&gt;Yes&lt;/res:value&gt;
  + &lt;res:path&gt;/response-examples/&lt;/res:path&gt;
  +&lt;/res:addcookie&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="secure">&nbsp;secure</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Indicates to the browser whether the cookie should
  +   only be sent using a secure protocol, such as HTTPS or SSL. 
  +   Can be set to <b>true</b> or <b>false</b>.
  +   The default value is <b>false</b>.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Cookie secure is set based on the tag body.
  +      Must be nested inside an <b>addcookie</b> tag.</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Return a test cookie --%&gt;
  +&lt;res:addcookie name="test"&gt;
  + &lt;res:value&gt;Yes&lt;/res:value&gt;
  + &lt;res:secure&gt;true&lt;/res:secure&gt;
  +&lt;/res:addcookie&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="version">&nbsp;version</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Sets the version of the cookie protocol this cookie complies with.
  +   Version 0 complies with the original Netscape cookie specification.
  +   Version 1 complies with RFC 2109. 
  +   Since RFC 2109 is still somewhat new, consider version 1 as experimental;
  +   do not use it yet on production sites.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Cookie version is set to the tag body.
  +      Must be nested inside an <b>addcookie</b> tag.</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Return a test cookie --%&gt;
  +&lt;res:addcookie name="test"&gt;
  + &lt;res:value&gt;Yes&lt;/res:value&gt;
  + &lt;res:version&gt;0&lt;/res:version&gt;
  +&lt;/res:addcookie&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="addheader">&nbsp;addheader</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Adds a response header with the given name and a value.
  +   This method allows response headers to have multiple values.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Header value is set to content of the tag body.</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;name</B></TD>
  +        <TD WIDTH="20%">&nbsp;Yes</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR> 
  +        <TD COLSPAN="3">Sets the name of the header.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Add the HTTP Header Cache-Control set to no-cache --%&gt;
  +&lt;res:addheader name="Cache-Control"&gt;no-cache&lt;/res:addheader&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="addintheader">&nbsp;addintheader</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Adds a response header with the given name and an integer value.
  +   This method allows response headers to have multiple values.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Header value is set to content of the tag body
  +      which must be an integer.</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;name</B></TD>
  +        <TD WIDTH="20%">&nbsp;Yes</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR> 
  +        <TD COLSPAN="3">Sets the name of the header.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Add the HTTP Header Expires set to 0 --%&gt;
  +&lt;res:addintheader name="Expires"&gt;0&lt;/res:addintheader&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="adddateheader">&nbsp;adddateheader</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Adds a response header with the given name and date value.
  +   The date is specified in terms of milliseconds since Jan 1, 1970 GMT.
  +   This method allows response headers to have multiple values.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Header value is set to content of the tag body which
  +      must be a date specified in terms of milliseconds since Jan 1, 1970 GMT.</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;name</B></TD>
  +        <TD WIDTH="20%">&nbsp;Yes</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR> 
  +        <TD COLSPAN="3">Sets the name of the header.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Add an HTTP Header Expires set to the current time --%&gt;
  +&lt;res:adddateheader name="Expires"&gt;&lt;dt:currenttime/&lt;&lt;/res:adddateheader&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="setheader">&nbsp;setheader</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Set a response header with the given name to a value.
  +   If the header had already been set, the new value overwrites
  +   the previous one.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Header value is set to content of the tag body.</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;name</B></TD>
  +        <TD WIDTH="20%">&nbsp;Yes</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR> 
  +        <TD COLSPAN="3">Sets the name of the header.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Set the HTTP Header Cache-Control to no-cache --%&gt;
  +&lt;res:setheader name="Cache-Control"&gt;no-cache&lt;/res:setheader&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="setintheader">&nbsp;setinteader</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Set a response header with the given name to an integer value.
  +   If the header had already been set, the new value overwrites
  +   the previous one.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Header value is set to content of the tag body
  +      which must be an integer.</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;name</B></TD>
  +        <TD WIDTH="20%">&nbsp;Yes</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR> 
  +        <TD COLSPAN="3">Sets the name of the header.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Set the HTTP Header Expires to 0 --%&gt;
  +&lt;res:setintheader name="Expires"&gt;0&lt;/res:setintheader&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="setdateheader">&nbsp;setdateheader</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Set a response header with the given name to a date
  +   specified as the number of milliseconds since Jan 1, 1970 GMT.
  +   If the header had already been set, the new value overwrites
  +   the previous one.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">Header value is set to content of the tag body
  +      which must be a date specified as the number of milliseconds since Jan 1, 1970 GMT.</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;name</B></TD>
  +        <TD WIDTH="20%">&nbsp;Yes</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR> 
  +        <TD COLSPAN="3">Sets the name of the header.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- Set the HTTP Header Expires to the current time --%&gt;
  +&lt;res:setdateheader name="Expires"&gt;&lt;dt:currenttime/&gt;&lt;/res:setdateheader&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<TABLE BORDER="0" WIDTH="90%" CELLPADDING="3" CELLSPACING="0">
  + <TR>
  +  <TD COLSPAN="2">
  +   <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="100%" CELLSPACING="0">
  +    <TR>
  +     <TD><B><FONT SIZE="+1"><A NAME="containsheader">&nbsp;containsheader</A></FONT></B></TD>
  +     <TD ALIGN="RIGHT">Availability: version 1.0&nbsp;</TD>
  +    </TR>
  +   </TABLE>
  +  </TD
  + </TR>
  + <TR>
  +  <TD COLSPAN="2">Test whether the HTTP Response contains an HTTP header.</TD>
  + </TR>
  +<TR>
  +  <TD WIDTH="2%">&nbsp;</TD>
  +  <TD WIDTH="98%">
  +   <TABLE BORDER="0" WIDTH="100%">
  +    <TR>
  +     <TD WIDTH="20%"><B>Tag Body</B></TD>
  +     <TD WIDTH="80%">JSP</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Script Variable</B></TD>
  +     <TD WIDTH="80%">No</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Restrictions</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%"><B>Attributes</B></TD>
  +     <TD WIDTH="80%">&nbsp;</TD>
  +    </TR>
  +    <TR>
  +     <TD WIDTH="20%">&nbsp;</TD>
  +     <TD WIDTH="80%">
  +      <TABLE BORDER="0" WIDTH="100%">
  +       <TR>
  +        <TD WIDTH="40%">Name</TD>
  +        <TD WIDTH="20%">Required</TD>
  +        <TD WIDTH="40%">Runtime Expression Evaluation</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;name</B></TD>
  +        <TD WIDTH="20%">&nbsp;Yes</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR> 
  +        <TD COLSPAN="3">Name of the HTTP header.</TD>
  +       </TR>
  +       <TR BGCOLOR="#CCCCCC">
  +        <TD WIDTH="40%"><B>&nbsp;value</B></TD>
  +        <TD WIDTH="20%">&nbsp;No</TD>
  +        <TD WIDTH="40%">&nbsp;No</TD>
  +       </TR>
  +       <TR>
  +        <TD COLSPAN="3">If value is set to false the containsheader tag includes
  +         body of tag if the HTTP header has not been set.</TD>
  +       </TR>
  +      </TABLE>
  +     </TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%"><B>Properties</B></TD>
  +     <TD WIDTH="80%">None</TD>
  +    </TR>
  +    <TR> 
  +     <TD WIDTH="20%" VALIGN="TOP"><B>Example</B></TD>
  +     <TD WIDTH="80%"><BR>
  +<PRE>
  +&lt;%-- set the Expires HTTP header if it doesn't exist --%&gt;
  +&lt;res:containsheader name="Expires"&gt;
  + Expires header already exists!
  +&lt;/res:containsheader&gt;
  +&lt;res:containsheader name="Expires" value="false"&gt;
  + Set Expires HTTP Header to 0:
  + &lt;res:setintheader name="Expires"&gt;0&lt;/res:setintheader&gt;
  +&lt;/res:containsheader&gt;
  +</PRE>
  +     </TD>
  +    </TR>
  +   </TABLE>
  +  </TD>
  + </TR>
  +</TABLE>
  +
  +<A NAME="codes"><H3>HTTP Error and Status Codes</H3>
  +
  +<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" WIDTH="90%">
  + <TR>
  +  <TD><B>SC_ACCEPTED</B><BR>
  +  Status code (202) indicating that a request was accepted for
  +   processing, but was not completed.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_BAD_GATEWAY</B><BR>
  +  Status code (502) indicating that the HTTP server received an
  +   invalid response from a server it consulted when acting as a
  +   proxy or gateway.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_BAD_REQUEST</B><BR>
  +  Status code (400) indicating the request sent by the client was
  +   syntactically incorrect.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_CONFLICT</B><BR>
  +  Status code (409) indicating that the request could not be
  +   completed due to a conflict with the current state of the
  +   resource.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_CONTINUE</B><BR>
  +  Status code (100) indicating the client can continue.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_CREATED</B><BR>
  +  Status code (201) indicating the request succeeded and created
  +   a new resource on the server.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_EXPECTATION_FAILED</B><BR>
  +  Status code (417) indicating that the server could not meet the
  +   expectation given in the Expect request header.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_FORBIDDEN</B><BR>
  +  Status code (403) indicating the server understood the request
  +   but refused to fulfill it.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_GATEWAY_TIMEOUT</B><BR>
  +  Status code (504) indicating that the server did not receive
  +   a timely response from the upstream server while acting as
  +   a gateway or proxy.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_GONE</B><BR>
  +  Status code (410) indicating that the resource is no longer
  +   available at the server and no forwarding address is known.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_HTTP_VERSION_NOT_SUPPORTED</B><BR>
  +  Status code (505) indicating that the server does not support
  +   or refuses to support the HTTP protocol version that was used
  +   in the request message.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_INTERNAL_SERVER_ERROR</B><BR>
  +  Status code (500) indicating an error inside the HTTP server
  +   which prevented it from fulfilling the request.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_LENGTH_REQUIRED</B><BR>
  +  Status code (411) indicating that the request cannot be handled
  + without a defined <code><em>Content-Length</em></code>.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_METHOD_NOT_ALLOWED</B><BR>
  +  Status code (405) indicating that the method specified in the
  +   <code><em>Request-Line</em></code> is not allowed for the resource
  +   identified by the <code><em>Request-URI</em></code>.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_MOVED_PERMANENTLY</B><BR>
  +  Status code (301) indicating that the resource has permanently
  +   moved to a new location, and that future references should use a
  +   new URI with their requests.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_MOVED_TEMPORARILY</B><BR>
  +  Status code (302) indicating that the resource has temporarily
  +   moved to another location, but that future references should
  +   still use the original URI to access the resource.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_MULTIPLE_CHOICES</B><BR>
  +  Status code (300) indicating that the requested resource
  +   corresponds to any one of a set of representations, each with
  +   its own specific location.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_NO_CONTENT</B><BR>
  +  Status code (204) indicating that the request succeeded but that
  +   there was no new information to return.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_NON_AUTHORITATIVE_INFORMATION</B><BR>
  +  Status code (203) indicating that the meta information presented
  +   by the client did not originate from the server.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_NOT_ACCEPTABLE</B><BR>
  +  Status code (406) indicating that the resource identified by the
  +   request is only capable of generating response entities which have
  +   content characteristics not acceptable according to the accept
  +   headerssent in the request.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_NOT_FOUND</B><BR>
  +  Status code (404) indicating that the requested resource is not
  +   available.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_NOT_IMPLEMENTED</B><BR>
  +  Status code (501) indicating the HTTP server does not support
  +   the functionality needed to fulfill the request.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_NOT_MODIFIED</B><BR>
  +  Status code (304) indicating that a conditional GET operation
  +   found that the resource was available and not modified.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_OK</B><BR>
  +  Status code (200) indicating the request succeeded normally.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_PARTIAL_CONTENT</B><BR>
  +  Status code (206) indicating that the server has fulfilled
  +   the partial GET request for the resource.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_PAYMENT_REQUIRED</B><BR>
  +  Status code (402) reserved for future use.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_PRECONDITION_FAILED</B><BR>
  +  Status code (412) indicating that the precondition given in one
  +   or more of the request-header fields evaluated to false when it
  +   was tested on the server.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_PROXY_AUTHENTICATION_REQUIRED</B><BR>
  +  Status code (407) indicating that the client <em>MUST</em> first
  +   authenticate itself with the proxy.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_REQUEST_ENTITY_TOO_LARGE</B><BR>
  +  Status code (413) indicating that the server is refusing to process
  +   the request because the request entity is larger than the server is
  +   willing or able to process.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_REQUEST_TIMEOUT</B><BR>
  +  Status code (408) indicating that the client did not produce a
  +   requestwithin the time that the server was prepared to wait.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_REQUEST_URI_TOO_LONG</B><BR>
  +  Status code (414) indicating that the server is refusing to service
  +   the request because the <code><em>Request-URI</em></code> is longer
  +   than the server is willing to interpret.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_REQUESTED_RANGE_NOT_SATISFIABLE</B><BR>
  +  Status code (416) indicating that the server cannot serve the
  +   requested byte range.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_RESET_CONTENT</B><BR>
  +  Status code (205) indicating that the agent <em>SHOULD</em> reset
  +   the document view which caused the request to be sent.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_SEE_OTHER</B><BR>
  +  Status code (303) indicating that the response to the request
  +   can be found under a different URI.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_SERVICE_UNAVAILABLE</B><BR>
  +  Status code (503) indicating that the HTTP server is
  +   temporarily overloaded, and unable to handle the request.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_SWITCHING_PROTOCOLS</B><BR>
  +  Status code (101) indicating the server is switching protocols
  +   according to Upgrade header.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_UNAUTHORIZED</B><BR>
  +  Status code (401) indicating that the request requires HTTP
  +   authentication.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_UNSUPPORTED_MEDIA_TYPE</B><BR>
  +  Status code (415) indicating that the server is refusing to service
  +   the request because the entity of the request is in a format not
  +   supported by the requested resource for the requested method.</TD>
  + </TR>
  + <TR>
  +  <TD><B>SC_USE_PROXY</B><BR>
  +  Status code (305) indicating that the requested resource
  +   <em>MUST</em> be accessed through the proxy given by the
  +   <code><em>Location</em></code> field.</TD>
  + </TR>
  +</TABLE>
  +
  +<A NAME="examples"><H3>Examples</H3></A>
  +<P>See the example application response-examples.war for examples of the usage
  +of the tags from this custom tag library.</P>
  +
  +<A NAME="javadocs"><H3>Java Docs</H3></A>
  +<P>Java programmers can view the java class documentation for this tag library
  +as <A HREF="javadoc/index.html">javadocs</A>.</P>
  +
  +<A NAME="history"><H3>Revision History</H3></A>
  +<P>Review the complete <A HREF="changes.html">revision history</A> of this tag
  +library.</P>
  +</BODY>
  +</HTML>