<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>PageContext</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="PageContext";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":10,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":10,"i15":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../jakarta/servlet/jsp/JspWriter.html" title="class in jakarta.servlet.jsp"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../jakarta/servlet/jsp/SkipPageException.html" title="class in jakarta.servlet.jsp"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/servlet/jsp/PageContext.html" target="_top">Frames</a></li>
<li><a href="PageContext.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">jakarta.servlet.jsp</div>
<h2 title="Class PageContext" class="title">Class PageContext</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../jakarta/servlet/jsp/JspContext.html" title="class in jakarta.servlet.jsp">jakarta.servlet.jsp.JspContext</a></li>
<li>
<ul class="inheritance">
<li>jakarta.servlet.jsp.PageContext</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">PageContext</span>
extends <a href="../../../jakarta/servlet/jsp/JspContext.html" title="class in jakarta.servlet.jsp">JspContext</a></pre>
<div class="block"><p>
 PageContext extends JspContext to provide useful context information for when JSP technology is used in a Servlet
 environment.
 <p>
 A PageContext instance provides access to all the namespaces associated with a JSP page, provides access to several
 page attributes, as well as a layer above the implementation details. Implicit objects are added to the pageContext
 automatically.

 <p>
 The <code> PageContext </code> class is an abstract class, designed to be extended to provide implementation
 dependent implementations thereof, by conformant JSP engine runtime environments. A PageContext instance is obtained
 by a JSP implementation class by calling the JspFactory.getPageContext() method, and is released by calling
 JspFactory.releasePageContext().

 <p>
 An example of how PageContext, JspFactory, and other classes can be used within a JSP Page Implementation object is
 given elsewhere.

 <p>
 The PageContext provides a number of facilities to the page/component author and page implementor, including:
 <ul>
 <li>a single API to manage the various scoped namespaces
 <li>a number of convenience API's to access various public objects
 <li>a mechanism to obtain the JspWriter for output
 <li>a mechanism to manage session usage by the page
 <li>a mechanism to expose page directive attributes to the scripting environment
 <li>mechanisms to forward or include the current request to other active components in the application
 <li>a mechanism to handle errorpage exception processing
 </ul>

 <p>
 <B>Methods Intended for Container Generated Code</B>
 <p>
 Some methods are intended to be used by the code generated by the container, not by code written by JSP page authors,
 or JSP tag library authors.
 <p>
 The methods supporting <B>lifecycle</B> are <code>initialize()</code> and <code>release()</code>

 <p>
 The following methods enable the <B>management of nested</B> JspWriter streams to implement Tag Extensions:
 <code>pushBody()</code>

 <p>
 <B>Methods Intended for JSP authors</B>
 <p>
 The following methods provide <B>convenient access</B> to implicit objects: <code>getException()</code>,
 <code>getPage()</code> <code>getRequest()</code>, <code>getResponse()</code>, <code>getSession()</code>,
 <code>getServletConfig()</code> and <code>getServletContext()</code>.

 <p>
 The following methods provide support for <B>forwarding, inclusion and error handling</B>: <code>forward()</code>,
 <code>include()</code>, and <code>handlePageException()</code>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#APPLICATION">APPLICATION</a></span></code>
<div class="block">Name used to store ServletContext in PageContext name table.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#APPLICATION_SCOPE">APPLICATION_SCOPE</a></span></code>
<div class="block">Application scope: named reference remains available in the ServletContext until it is reclaimed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#CONFIG">CONFIG</a></span></code>
<div class="block">Name used to store ServletConfig in PageContext name table.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#EXCEPTION">EXCEPTION</a></span></code>
<div class="block">Name used to store uncaught exception in ServletRequest attribute list and PageContext name table.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#OUT">OUT</a></span></code>
<div class="block">Name used to store current JspWriter in PageContext name table.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#PAGE">PAGE</a></span></code>
<div class="block">Name used to store the Servlet in this PageContext's nametables.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#PAGE_SCOPE">PAGE_SCOPE</a></span></code>
<div class="block">Page scope: (this is the default) the named reference remains available in this PageContext until the return from
 the current Servlet.service() invocation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#PAGECONTEXT">PAGECONTEXT</a></span></code>
<div class="block">Name used to store this PageContext in it's own name table.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#REQUEST">REQUEST</a></span></code>
<div class="block">Name used to store ServletRequest in PageContext name table.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#REQUEST_SCOPE">REQUEST_SCOPE</a></span></code>
<div class="block">Request scope: the named reference remains available from the ServletRequest associated with the Servlet until
 the current request is completed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#RESPONSE">RESPONSE</a></span></code>
<div class="block">Name used to store ServletResponse in PageContext name table.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#SESSION">SESSION</a></span></code>
<div class="block">Name used to store HttpSession in PageContext name table.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#SESSION_SCOPE">SESSION_SCOPE</a></span></code>
<div class="block">Session scope (only valid if this page participates in a session): the named reference remains available from the
 HttpSession (if any) associated with the Servlet until the HttpSession is invalidated.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#PageContext--">PageContext</a></span>()</code>
<div class="block">Sole constructor.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#forward-java.lang.String-">forward</a></span>(java.lang.String&nbsp;relativeUrlPath)</code>
<div class="block">
 This method is used to re-direct, or "forward" the current ServletRequest and ServletResponse to another active
 component in the application.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/servlet/jsp/ErrorData.html" title="class in jakarta.servlet.jsp">ErrorData</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#getErrorData--">getErrorData</a></span>()</code>
<div class="block">Provides convenient access to error information.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract java.lang.Exception</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#getException--">getException</a></span>()</code>
<div class="block">The current value of the exception object (an Exception).</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#getPage--">getPage</a></span>()</code>
<div class="block">The current value of the page object (In a Servlet environment, this is an instance of jakarta.servlet.Servlet).</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../jakarta/servlet/ServletRequest.html" title="interface in jakarta.servlet">ServletRequest</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#getRequest--">getRequest</a></span>()</code>
<div class="block">The current value of the request object (a ServletRequest).</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../jakarta/servlet/ServletResponse.html" title="interface in jakarta.servlet">ServletResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#getResponse--">getResponse</a></span>()</code>
<div class="block">The current value of the response object (a ServletResponse).</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../jakarta/servlet/ServletConfig.html" title="interface in jakarta.servlet">ServletConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#getServletConfig--">getServletConfig</a></span>()</code>
<div class="block">The ServletConfig instance.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../jakarta/servlet/ServletContext.html" title="interface in jakarta.servlet">ServletContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#getServletContext--">getServletContext</a></span>()</code>
<div class="block">The ServletContext instance.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../jakarta/servlet/http/HttpSession.html" title="interface in jakarta.servlet.http">HttpSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#getSession--">getSession</a></span>()</code>
<div class="block">The current value of the session object (an HttpSession).</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#handlePageException-java.lang.Exception-">handlePageException</a></span>(java.lang.Exception&nbsp;e)</code>
<div class="block">
 This method is intended to process an unhandled 'page' level exception by forwarding the exception to the
 specified error page for this JSP.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#handlePageException-java.lang.Throwable-">handlePageException</a></span>(java.lang.Throwable&nbsp;t)</code>
<div class="block">
 This method is intended to process an unhandled 'page' level exception by forwarding the exception to the
 specified error page for this JSP.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#include-java.lang.String-">include</a></span>(java.lang.String&nbsp;relativeUrlPath)</code>
<div class="block">
 Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being
 processed by the calling Thread.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#include-java.lang.String-boolean-">include</a></span>(java.lang.String&nbsp;relativeUrlPath,
       boolean&nbsp;flush)</code>
<div class="block">
 Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being
 processed by the calling Thread.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#initialize-jakarta.servlet.Servlet-jakarta.servlet.ServletRequest-jakarta.servlet.ServletResponse-java.lang.String-boolean-int-boolean-">initialize</a></span>(<a href="../../../jakarta/servlet/Servlet.html" title="interface in jakarta.servlet">Servlet</a>&nbsp;servlet,
          <a href="../../../jakarta/servlet/ServletRequest.html" title="interface in jakarta.servlet">ServletRequest</a>&nbsp;request,
          <a href="../../../jakarta/servlet/ServletResponse.html" title="interface in jakarta.servlet">ServletResponse</a>&nbsp;response,
          java.lang.String&nbsp;errorPageURL,
          boolean&nbsp;needsSession,
          int&nbsp;bufferSize,
          boolean&nbsp;autoFlush)</code>
<div class="block">
 The initialize method is called to initialize an uninitialized PageContext so that it may be used by a JSP
 Implementation class to service an incoming request and response within it's _jspService() method.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/servlet/jsp/tagext/BodyContent.html" title="class in jakarta.servlet.jsp.tagext">BodyContent</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#pushBody--">pushBody</a></span>()</code>
<div class="block">Return a new BodyContent object, save the current "out" JspWriter, and update the value of the "out" attribute in
 the page scope attribute namespace of the PageContext.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/servlet/jsp/PageContext.html#release--">release</a></span>()</code>
<div class="block">
 This method shall "reset" the internal state of a PageContext, releasing all internal references, and preparing
 the PageContext for potential reuse by a later invocation of initialize().</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.jakarta.servlet.jsp.JspContext">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;jakarta.servlet.jsp.<a href="../../../jakarta/servlet/jsp/JspContext.html" title="class in jakarta.servlet.jsp">JspContext</a></h3>
<code><a href="../../../jakarta/servlet/jsp/JspContext.html#findAttribute-java.lang.String-">findAttribute</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#getAttribute-java.lang.String-">getAttribute</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#getAttribute-java.lang.String-int-">getAttribute</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#getAttributeNamesInScope-int-">getAttributeNamesInScope</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#getAttributesScope-java.lang.String-">getAttributesScope</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#getELContext--">getELContext</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#getExpressionEvaluator--">getExpressionEvaluator</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#getOut--">getOut</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#getVariableResolver--">getVariableResolver</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#popBody--">popBody</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#pushBody-java.io.Writer-">pushBody</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#removeAttribute-java.lang.String-">removeAttribute</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#removeAttribute-java.lang.String-int-">removeAttribute</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#setAttribute-java.lang.String-java.lang.Object-">setAttribute</a>, <a href="../../../jakarta/servlet/jsp/JspContext.html#setAttribute-java.lang.String-java.lang.Object-int-">setAttribute</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="PAGE_SCOPE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PAGE_SCOPE</h4>
<pre>public static final&nbsp;int PAGE_SCOPE</pre>
<div class="block">Page scope: (this is the default) the named reference remains available in this PageContext until the return from
 the current Servlet.service() invocation.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.PAGE_SCOPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REQUEST_SCOPE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REQUEST_SCOPE</h4>
<pre>public static final&nbsp;int REQUEST_SCOPE</pre>
<div class="block">Request scope: the named reference remains available from the ServletRequest associated with the Servlet until
 the current request is completed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.REQUEST_SCOPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SESSION_SCOPE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SESSION_SCOPE</h4>
<pre>public static final&nbsp;int SESSION_SCOPE</pre>
<div class="block">Session scope (only valid if this page participates in a session): the named reference remains available from the
 HttpSession (if any) associated with the Servlet until the HttpSession is invalidated.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.SESSION_SCOPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="APPLICATION_SCOPE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>APPLICATION_SCOPE</h4>
<pre>public static final&nbsp;int APPLICATION_SCOPE</pre>
<div class="block">Application scope: named reference remains available in the ServletContext until it is reclaimed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.APPLICATION_SCOPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PAGE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PAGE</h4>
<pre>public static final&nbsp;java.lang.String PAGE</pre>
<div class="block">Name used to store the Servlet in this PageContext's nametables.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.PAGE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PAGECONTEXT">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PAGECONTEXT</h4>
<pre>public static final&nbsp;java.lang.String PAGECONTEXT</pre>
<div class="block">Name used to store this PageContext in it's own name table.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.PAGECONTEXT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REQUEST">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REQUEST</h4>
<pre>public static final&nbsp;java.lang.String REQUEST</pre>
<div class="block">Name used to store ServletRequest in PageContext name table.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.REQUEST">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RESPONSE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESPONSE</h4>
<pre>public static final&nbsp;java.lang.String RESPONSE</pre>
<div class="block">Name used to store ServletResponse in PageContext name table.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.RESPONSE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CONFIG">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CONFIG</h4>
<pre>public static final&nbsp;java.lang.String CONFIG</pre>
<div class="block">Name used to store ServletConfig in PageContext name table.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.CONFIG">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SESSION">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SESSION</h4>
<pre>public static final&nbsp;java.lang.String SESSION</pre>
<div class="block">Name used to store HttpSession in PageContext name table.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.SESSION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="OUT">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OUT</h4>
<pre>public static final&nbsp;java.lang.String OUT</pre>
<div class="block">Name used to store current JspWriter in PageContext name table.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.OUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="APPLICATION">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>APPLICATION</h4>
<pre>public static final&nbsp;java.lang.String APPLICATION</pre>
<div class="block">Name used to store ServletContext in PageContext name table.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.APPLICATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EXCEPTION">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EXCEPTION</h4>
<pre>public static final&nbsp;java.lang.String EXCEPTION</pre>
<div class="block">Name used to store uncaught exception in ServletRequest attribute list and PageContext name table.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#jakarta.servlet.jsp.PageContext.EXCEPTION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="PageContext--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PageContext</h4>
<pre>public&nbsp;PageContext()</pre>
<div class="block">Sole constructor. (For invocation by subclass constructors, typically implicit.)</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="initialize-jakarta.servlet.Servlet-jakarta.servlet.ServletRequest-jakarta.servlet.ServletResponse-java.lang.String-boolean-int-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre>public abstract&nbsp;void&nbsp;initialize(<a href="../../../jakarta/servlet/Servlet.html" title="interface in jakarta.servlet">Servlet</a>&nbsp;servlet,
                                <a href="../../../jakarta/servlet/ServletRequest.html" title="interface in jakarta.servlet">ServletRequest</a>&nbsp;request,
                                <a href="../../../jakarta/servlet/ServletResponse.html" title="interface in jakarta.servlet">ServletResponse</a>&nbsp;response,
                                java.lang.String&nbsp;errorPageURL,
                                boolean&nbsp;needsSession,
                                int&nbsp;bufferSize,
                                boolean&nbsp;autoFlush)
                         throws java.io.IOException,
                                java.lang.IllegalStateException,
                                java.lang.IllegalArgumentException</pre>
<div class="block"><p>
 The initialize method is called to initialize an uninitialized PageContext so that it may be used by a JSP
 Implementation class to service an incoming request and response within it's _jspService() method.

 <p>
 This method is typically called from JspFactory.getPageContext() in order to initialize state.

 <p>
 This method is required to create an initial JspWriter, and associate the "out" name in page scope with this
 newly created object.

 <p>
 This method should not be used by page or tag library authors.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>servlet</code> - The Servlet that is associated with this PageContext</dd>
<dd><code>request</code> - The currently pending request for this Servlet</dd>
<dd><code>response</code> - The currently pending response for this Servlet</dd>
<dd><code>errorPageURL</code> - The value of the errorpage attribute from the page directive or null</dd>
<dd><code>needsSession</code> - The value of the session attribute from the page directive</dd>
<dd><code>bufferSize</code> - The value of the buffer attribute from the page directive</dd>
<dd><code>autoFlush</code> - The value of the autoflush attribute from the page directive</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - during creation of JspWriter</dd>
<dd><code>java.lang.IllegalStateException</code> - if out not correctly initialized</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If one of the given parameters is invalid</dd>
</dl>
</li>
</ul>
<a name="release--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre>public abstract&nbsp;void&nbsp;release()</pre>
<div class="block"><p>
 This method shall "reset" the internal state of a PageContext, releasing all internal references, and preparing
 the PageContext for potential reuse by a later invocation of initialize(). This method is typically called from
 JspFactory.releasePageContext().

 <p>
 Subclasses shall envelope this method.

 <p>
 This method should not be used by page or tag library authors.</div>
</li>
</ul>
<a name="getSession--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSession</h4>
<pre>public abstract&nbsp;<a href="../../../jakarta/servlet/http/HttpSession.html" title="interface in jakarta.servlet.http">HttpSession</a>&nbsp;getSession()</pre>
<div class="block">The current value of the session object (an HttpSession).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the HttpSession for this PageContext or null</dd>
</dl>
</li>
</ul>
<a name="getPage--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPage</h4>
<pre>public abstract&nbsp;java.lang.Object&nbsp;getPage()</pre>
<div class="block">The current value of the page object (In a Servlet environment, this is an instance of jakarta.servlet.Servlet).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Page implementation class instance associated with this PageContext</dd>
</dl>
</li>
</ul>
<a name="getRequest--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequest</h4>
<pre>public abstract&nbsp;<a href="../../../jakarta/servlet/ServletRequest.html" title="interface in jakarta.servlet">ServletRequest</a>&nbsp;getRequest()</pre>
<div class="block">The current value of the request object (a ServletRequest).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The ServletRequest for this PageContext</dd>
</dl>
</li>
</ul>
<a name="getResponse--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResponse</h4>
<pre>public abstract&nbsp;<a href="../../../jakarta/servlet/ServletResponse.html" title="interface in jakarta.servlet">ServletResponse</a>&nbsp;getResponse()</pre>
<div class="block">The current value of the response object (a ServletResponse).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the ServletResponse for this PageContext</dd>
</dl>
</li>
</ul>
<a name="getException--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getException</h4>
<pre>public abstract&nbsp;java.lang.Exception&nbsp;getException()</pre>
<div class="block">The current value of the exception object (an Exception).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>any exception passed to this as an errorpage</dd>
</dl>
</li>
</ul>
<a name="getServletConfig--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServletConfig</h4>
<pre>public abstract&nbsp;<a href="../../../jakarta/servlet/ServletConfig.html" title="interface in jakarta.servlet">ServletConfig</a>&nbsp;getServletConfig()</pre>
<div class="block">The ServletConfig instance.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the ServletConfig for this PageContext</dd>
</dl>
</li>
</ul>
<a name="getServletContext--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServletContext</h4>
<pre>public abstract&nbsp;<a href="../../../jakarta/servlet/ServletContext.html" title="interface in jakarta.servlet">ServletContext</a>&nbsp;getServletContext()</pre>
<div class="block">The ServletContext instance.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the ServletContext for this PageContext</dd>
</dl>
</li>
</ul>
<a name="forward-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>forward</h4>
<pre>public abstract&nbsp;void&nbsp;forward(java.lang.String&nbsp;relativeUrlPath)
                      throws <a href="../../../jakarta/servlet/ServletException.html" title="class in jakarta.servlet">ServletException</a>,
                             java.io.IOException</pre>
<div class="block"><p>
 This method is used to re-direct, or "forward" the current ServletRequest and ServletResponse to another active
 component in the application.
 </p>
 <p>
 If the <I> relativeUrlPath </I> begins with a "/" then the URL specified is calculated relative to the DOCROOT of
 the <code> ServletContext </code> for this JSP. If the path does not begin with a "/" then the URL specified is
 calculated relative to the URL of the request that was mapped to the calling JSP.
 </p>
 <p>
 It is only valid to call this method from a <code> Thread </code> executing within a
 <code> _jspService(...) </code> method of a JSP.
 </p>
 <p>
 Once this method has been called successfully, it is illegal for the calling <code> Thread </code> to attempt to
 modify the <code>
 ServletResponse </code> object. Any such attempt to do so, shall result in undefined behavior. Typically, callers
 immediately return from <code> _jspService(...) </code> after calling this method.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>relativeUrlPath</code> - specifies the relative URL path to the target resource as described above</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if <code> ServletResponse </code> is not in a state where a forward can be
                               performed</dd>
<dd><code><a href="../../../jakarta/servlet/ServletException.html" title="class in jakarta.servlet">ServletException</a></code> - if the page that was forwarded to throws a ServletException</dd>
<dd><code>java.io.IOException</code> - if an I/O error occurred while forwarding</dd>
</dl>
</li>
</ul>
<a name="include-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>include</h4>
<pre>public abstract&nbsp;void&nbsp;include(java.lang.String&nbsp;relativeUrlPath)
                      throws <a href="../../../jakarta/servlet/ServletException.html" title="class in jakarta.servlet">ServletException</a>,
                             java.io.IOException</pre>
<div class="block"><p>
 Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being
 processed by the calling Thread. The output of the target resources processing of the request is written directly
 to the ServletResponse output stream.
 </p>
 <p>
 The current JspWriter "out" for this JSP is flushed as a side-effect of this call, prior to processing the
 include.
 </p>
 <p>
 If the <I> relativeUrlPath </I> begins with a "/" then the URL specified is calculated relative to the DOCROOT of
 the <code>ServletContext</code> for this JSP. If the path does not begin with a "/" then the URL specified is
 calculated relative to the URL of the request that was mapped to the calling JSP.
 </p>
 <p>
 It is only valid to call this method from a <code> Thread </code> executing within a
 <code> _jspService(...) </code> method of a JSP.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>relativeUrlPath</code> - specifies the relative URL path to the target resource to be included</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/servlet/ServletException.html" title="class in jakarta.servlet">ServletException</a></code> - if the page that was forwarded to throws a ServletException</dd>
<dd><code>java.io.IOException</code> - if an I/O error occurred while forwarding</dd>
</dl>
</li>
</ul>
<a name="include-java.lang.String-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>include</h4>
<pre>public abstract&nbsp;void&nbsp;include(java.lang.String&nbsp;relativeUrlPath,
                             boolean&nbsp;flush)
                      throws <a href="../../../jakarta/servlet/ServletException.html" title="class in jakarta.servlet">ServletException</a>,
                             java.io.IOException</pre>
<div class="block"><p>
 Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being
 processed by the calling Thread. The output of the target resources processing of the request is written directly
 to the current JspWriter returned by a call to getOut().
 </p>
 <p>
 If flush is true, The current JspWriter "out" for this JSP is flushed as a side-effect of this call, prior to
 processing the include. Otherwise, the JspWriter "out" is not flushed.
 </p>
 <p>
 If the <i>relativeUrlPath</i> begins with a "/" then the URL specified is calculated relative to the DOCROOT of
 the <code>ServletContext</code> for this JSP. If the path does not begin with a "/" then the URL specified is
 calculated relative to the URL of the request that was mapped to the calling JSP.
 </p>
 <p>
 It is only valid to call this method from a <code> Thread </code> executing within a
 <code> _jspService(...) </code> method of a JSP.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>relativeUrlPath</code> - specifies the relative URL path to the target resource to be included</dd>
<dd><code>flush</code> - True if the JspWriter is to be flushed before the include, or false if not.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/servlet/ServletException.html" title="class in jakarta.servlet">ServletException</a></code> - if the page that was forwarded to throws a ServletException</dd>
<dd><code>java.io.IOException</code> - if an I/O error occurred while forwarding</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JSP 2.0</dd>
</dl>
</li>
</ul>
<a name="handlePageException-java.lang.Exception-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handlePageException</h4>
<pre>public abstract&nbsp;void&nbsp;handlePageException(java.lang.Exception&nbsp;e)
                                  throws <a href="../../../jakarta/servlet/ServletException.html" title="class in jakarta.servlet">ServletException</a>,
                                         java.io.IOException</pre>
<div class="block"><p>
 This method is intended to process an unhandled 'page' level exception by forwarding the exception to the
 specified error page for this JSP. If forwarding is not possible (for example because the response has already
 been committed), an implementation dependent mechanism should be used to invoke the error page (e.g. "including"
 the error page instead).

 <p>
 If no error page is defined in the page, the exception should be rethrown so that the standard servlet error
 handling takes over.

 <p>
 A JSP implementation class shall typically clean up any local state prior to invoking this and will return
 immediately thereafter. It is illegal to generate any output to the client, or to modify any ServletResponse
 state after invoking this call.

 <p>
 This method is kept for backwards compatiblity reasons. Newly generated code should use
 PageContext.handlePageException(Throwable).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - the exception to be handled</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/servlet/ServletException.html" title="class in jakarta.servlet">ServletException</a></code> - if an error occurs while invoking the error page</dd>
<dd><code>java.io.IOException</code> - if an I/O error occurred while invoking the error page</dd>
<dd><code>java.lang.NullPointerException</code> - if the exception is null</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../jakarta/servlet/jsp/PageContext.html#handlePageException-java.lang.Throwable-"><code>handlePageException(Throwable)</code></a></dd>
</dl>
</li>
</ul>
<a name="handlePageException-java.lang.Throwable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handlePageException</h4>
<pre>public abstract&nbsp;void&nbsp;handlePageException(java.lang.Throwable&nbsp;t)
                                  throws <a href="../../../jakarta/servlet/ServletException.html" title="class in jakarta.servlet">ServletException</a>,
                                         java.io.IOException</pre>
<div class="block"><p>
 This method is intended to process an unhandled 'page' level exception by forwarding the exception to the
 specified error page for this JSP. If forwarding is not possible (for example because the response has already
 been committed), an implementation dependent mechanism should be used to invoke the error page (e.g. "including"
 the error page instead).

 <p>
 If no error page is defined in the page, the exception should be rethrown so that the standard servlet error
 handling takes over.

 <p>
 This method is intended to process an unhandled "page" level exception by redirecting the exception to either the
 specified error page for this JSP, or if none was specified, to perform some implementation dependent action.

 <p>
 A JSP implementation class shall typically clean up any local state prior to invoking this and will return
 immediately thereafter. It is illegal to generate any output to the client, or to modify any ServletResponse
 state after invoking this call.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>t</code> - the throwable to be handled</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../jakarta/servlet/ServletException.html" title="class in jakarta.servlet">ServletException</a></code> - if an error occurs while invoking the error page</dd>
<dd><code>java.io.IOException</code> - if an I/O error occurred while invoking the error page</dd>
<dd><code>java.lang.NullPointerException</code> - if the exception is null</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../jakarta/servlet/jsp/PageContext.html#handlePageException-java.lang.Exception-"><code>handlePageException(Exception)</code></a></dd>
</dl>
</li>
</ul>
<a name="pushBody--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushBody</h4>
<pre>public&nbsp;<a href="../../../jakarta/servlet/jsp/tagext/BodyContent.html" title="class in jakarta.servlet.jsp.tagext">BodyContent</a>&nbsp;pushBody()</pre>
<div class="block">Return a new BodyContent object, save the current "out" JspWriter, and update the value of the "out" attribute in
 the page scope attribute namespace of the PageContext.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new BodyContent</dd>
</dl>
</li>
</ul>
<a name="getErrorData--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getErrorData</h4>
<pre>public&nbsp;<a href="../../../jakarta/servlet/jsp/ErrorData.html" title="class in jakarta.servlet.jsp">ErrorData</a>&nbsp;getErrorData()</pre>
<div class="block">Provides convenient access to error information.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an ErrorData instance containing information about the error, as obtained from the request attributes, as
         per the Servlet specification. If this is not an error page (that is, if the isErrorPage attribute of the
         page directive is not set to "true"), the information is meaningless.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>JSP 2.0</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../jakarta/servlet/jsp/JspWriter.html" title="class in jakarta.servlet.jsp"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../jakarta/servlet/jsp/SkipPageException.html" title="class in jakarta.servlet.jsp"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/servlet/jsp/PageContext.html" target="_top">Frames</a></li>
<li><a href="PageContext.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
