<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>PageContextImpl</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="PageContextImpl";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":9,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":9,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":9,"i35":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance 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="../../../../org/apache/jasper/runtime/JspWriterImpl.html" title="class in org.apache.jasper.runtime"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/jasper/runtime/ProtectedFunctionMapper.html" title="class in org.apache.jasper.runtime"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/jasper/runtime/PageContextImpl.html" target="_top">Frames</a></li>
<li><a href="PageContextImpl.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="#fields.inherited.from.class.javax.servlet.jsp.PageContext">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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">org.apache.jasper.runtime</div>
<h2 title="Class PageContextImpl" class="title">Class PageContextImpl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">javax.servlet.jsp.JspContext</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">javax.servlet.jsp.PageContext</a></li>
<li>
<ul class="inheritance">
<li>org.apache.jasper.runtime.PageContextImpl</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">PageContextImpl</span>
extends <a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></pre>
<div class="block">Implementation of the PageContext class from the JSP spec.</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>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.javax.servlet.jsp.PageContext">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;javax.servlet.jsp.<a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></h3>
<code><a href="../../../../javax/servlet/jsp/PageContext.html#APPLICATION">APPLICATION</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#APPLICATION_SCOPE">APPLICATION_SCOPE</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#CONFIG">CONFIG</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#EXCEPTION">EXCEPTION</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#OUT">OUT</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#PAGE">PAGE</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#PAGE_SCOPE">PAGE_SCOPE</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#PAGECONTEXT">PAGECONTEXT</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#REQUEST">REQUEST</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#REQUEST_SCOPE">REQUEST_SCOPE</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#RESPONSE">RESPONSE</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#SESSION">SESSION</a>, <a href="../../../../javax/servlet/jsp/PageContext.html#SESSION_SCOPE">SESSION_SCOPE</a></code></li>
</ul>
</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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="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>static java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#evaluateExpression-java.lang.String-java.lang.Class-javax.servlet.jsp.PageContext-org.apache.jasper.runtime.ProtectedFunctionMapper-">evaluateExpression</a></span>(java.lang.String&nbsp;expression,
                  java.lang.Class&nbsp;expectedType,
                  <a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a>&nbsp;pageContext,
                  <a href="../../../../org/apache/jasper/runtime/ProtectedFunctionMapper.html" title="class in org.apache.jasper.runtime">ProtectedFunctionMapper</a>&nbsp;functionMap)</code>
<div class="block">Evaluates an EL expression</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#findAttribute-java.lang.String-">findAttribute</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Searches for the named attribute in page, request, session (if valid), and application scope(s) in order and
 returns the value associated or null.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.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="i3" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getAttribute-java.lang.String-">getAttribute</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Returns the object associated with the name in the page scope or null if not found.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getAttribute-java.lang.String-int-">getAttribute</a></span>(java.lang.String&nbsp;name,
            int&nbsp;scope)</code>
<div class="block">Return the object associated with the name in the specified scope or null if not found.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.util.Enumeration&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getAttributeNamesInScope-int-">getAttributeNamesInScope</a></span>(int&nbsp;scope)</code>
<div class="block">Enumerate all the attributes in a given scope.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getAttributesScope-java.lang.String-">getAttributesScope</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Get the scope where a given attribute is defined.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>ELContext</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getELContext--">getELContext</a></span>()</code>
<div class="block">Returns the <code>ELContext</code> associated with this <code>JspContext</code>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.Exception</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getException--">getException</a></span>()</code>
<div class="block">Returns the exception associated with this page context, if any.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/jsp/el/ExpressionEvaluator.html" title="class in javax.servlet.jsp.el">ExpressionEvaluator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getExpressionEvaluator--">getExpressionEvaluator</a></span>()</code>
<div class="block">Provides programmatic access to the ExpressionEvaluator.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static MethodExpression</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getMethodExpression-java.lang.String-javax.servlet.jsp.PageContext-FunctionMapper-java.lang.Class-java.lang.Class:A-">getMethodExpression</a></span>(java.lang.String&nbsp;expression,
                   <a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a>&nbsp;pageContext,
                   FunctionMapper&nbsp;functionMap,
                   java.lang.Class&nbsp;expectedType,
                   java.lang.Class[]&nbsp;paramTypes)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/jsp/JspWriter.html" title="class in javax.servlet.jsp">JspWriter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getOut--">getOut</a></span>()</code>
<div class="block">The current value of the out object (a JspWriter).</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.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 javax.servlet.Servlet).</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getRequest--">getRequest</a></span>()</code>
<div class="block">The current value of the request object (a ServletRequest).</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/ServletResponse.html" title="interface in javax.servlet">ServletResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getResponse--">getResponse</a></span>()</code>
<div class="block">The current value of the response object (a ServletResponse).</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/Servlet.html" title="interface in javax.servlet">Servlet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getServlet--">getServlet</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/ServletConfig.html" title="interface in javax.servlet">ServletConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getServletConfig--">getServletConfig</a></span>()</code>
<div class="block">The ServletConfig instance.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/ServletContext.html" title="interface in javax.servlet">ServletContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getServletContext--">getServletContext</a></span>()</code>
<div class="block">The ServletContext instance.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/http/HttpSession.html" title="interface in javax.servlet.http">HttpSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getSession--">getSession</a></span>()</code>
<div class="block">The current value of the session object (an HttpSession).</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static ValueExpression</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getValueExpression-java.lang.String-javax.servlet.jsp.PageContext-java.lang.Class-FunctionMapper-">getValueExpression</a></span>(java.lang.String&nbsp;expression,
                  <a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a>&nbsp;pageContext,
                  java.lang.Class&nbsp;expectedType,
                  FunctionMapper&nbsp;functionMap)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/jsp/el/VariableResolver.html" title="interface in javax.servlet.jsp.el">VariableResolver</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#getVariableResolver--">getVariableResolver</a></span>()</code>
<div class="block">Returns an instance of a VariableResolver that provides access to the implicit objects specified in the JSP
 specification using this JspContext as the context object.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#handlePageException-java.lang.Exception-">handlePageException</a></span>(java.lang.Exception&nbsp;ex)</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="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.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="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.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="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.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="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#initialize-javax.servlet.Servlet-javax.servlet.ServletRequest-javax.servlet.ServletResponse-java.lang.String-boolean-int-boolean-">initialize</a></span>(<a href="../../../../javax/servlet/Servlet.html" title="interface in javax.servlet">Servlet</a>&nbsp;servlet,
          <a href="../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a>&nbsp;request,
          <a href="../../../../javax/servlet/ServletResponse.html" title="interface in javax.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="i26" class="altColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/jsp/JspWriter.html" title="class in javax.servlet.jsp">JspWriter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#popBody--">popBody</a></span>()</code>
<div class="block">Return the previous JspWriter "out" saved by the matching pushBody(), and update the value of the "out" attribute
 in the page scope attribute namespace of the JspContext.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/jsp/tagext/BodyContent.html" title="class in javax.servlet.jsp.tagext">BodyContent</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.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="i28" class="altColor">
<td class="colFirst"><code><a href="../../../../javax/servlet/jsp/JspWriter.html" title="class in javax.servlet.jsp">JspWriter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#pushBody-java.io.Writer-">pushBody</a></span>(java.io.Writer&nbsp;writer)</code>
<div class="block">Return a new JspWriter object that sends output to the provided Writer.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.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>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#removeAttribute-java.lang.String-">removeAttribute</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Remove the object reference associated with the given name from all scopes.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#removeAttribute-java.lang.String-int-">removeAttribute</a></span>(java.lang.String&nbsp;name,
               int&nbsp;scope)</code>
<div class="block">Remove the object reference associated with the specified name in the given scope.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#setAttribute-java.lang.String-java.lang.Object-">setAttribute</a></span>(java.lang.String&nbsp;name,
            java.lang.Object&nbsp;attribute)</code>
<div class="block">Register the name and value specified with page scope semantics.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#setAttribute-java.lang.String-java.lang.Object-int-">setAttribute</a></span>(java.lang.String&nbsp;name,
            java.lang.Object&nbsp;o,
            int&nbsp;scope)</code>
<div class="block">Register the name and value specified with appropriate scope semantics.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#setMethodVariable-javax.servlet.jsp.PageContext-java.lang.String-MethodExpression-">setMethodVariable</a></span>(<a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a>&nbsp;pageContext,
                 java.lang.String&nbsp;variable,
                 MethodExpression&nbsp;expression)</code>&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/PageContextImpl.html#setValueVariable-javax.servlet.jsp.PageContext-java.lang.String-ValueExpression-">setValueVariable</a></span>(<a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a>&nbsp;pageContext,
                java.lang.String&nbsp;variable,
                ValueExpression&nbsp;expression)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.jsp.PageContext">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;javax.servlet.jsp.<a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></h3>
<code><a href="../../../../javax/servlet/jsp/PageContext.html#getErrorData--">getErrorData</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">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="initialize-javax.servlet.Servlet-javax.servlet.ServletRequest-javax.servlet.ServletResponse-java.lang.String-boolean-int-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre>public&nbsp;void&nbsp;initialize(<a href="../../../../javax/servlet/Servlet.html" title="interface in javax.servlet">Servlet</a>&nbsp;servlet,
                       <a href="../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a>&nbsp;request,
                       <a href="../../../../javax/servlet/ServletResponse.html" title="interface in javax.servlet">ServletResponse</a>&nbsp;response,
                       java.lang.String&nbsp;errorPageURL,
                       boolean&nbsp;needsSession,
                       int&nbsp;bufferSize,
                       boolean&nbsp;autoFlush)
                throws java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#initialize-javax.servlet.Servlet-javax.servlet.ServletRequest-javax.servlet.ServletResponse-java.lang.String-boolean-int-boolean-">PageContext</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#initialize-javax.servlet.Servlet-javax.servlet.ServletRequest-javax.servlet.ServletResponse-java.lang.String-boolean-int-boolean-">initialize</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<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>
</dl>
</li>
</ul>
<a name="release--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre>public&nbsp;void&nbsp;release()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#release--">PageContext</a></code></span></div>
<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>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#release--">release</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
</dl>
</li>
</ul>
<a name="getAttribute-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttribute</h4>
<pre>public&nbsp;java.lang.Object&nbsp;getAttribute(java.lang.String&nbsp;name)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#getAttribute-java.lang.String-">JspContext</a></code></span></div>
<div class="block">Returns the object associated with the name in the page scope or null if not found.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#getAttribute-java.lang.String-">getAttribute</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the attribute to get</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the object associated with the name in the page scope or null if not found.</dd>
</dl>
</li>
</ul>
<a name="getAttribute-java.lang.String-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttribute</h4>
<pre>public&nbsp;java.lang.Object&nbsp;getAttribute(java.lang.String&nbsp;name,
                                     int&nbsp;scope)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#getAttribute-java.lang.String-int-">JspContext</a></code></span></div>
<div class="block">Return the object associated with the name in the specified scope or null if not found.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#getAttribute-java.lang.String-int-">getAttribute</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the attribute to set</dd>
<dd><code>scope</code> - the scope with which to associate the name/object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the object associated with the name in the specified scope or null if not found.</dd>
</dl>
</li>
</ul>
<a name="setAttribute-java.lang.String-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAttribute</h4>
<pre>public&nbsp;void&nbsp;setAttribute(java.lang.String&nbsp;name,
                         java.lang.Object&nbsp;attribute)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#setAttribute-java.lang.String-java.lang.Object-">JspContext</a></code></span></div>
<div class="block">Register the name and value specified with page scope semantics. If the value passed in is <code>null</code>,
 this has the same effect as calling <code>removeAttribute( name, PageContext.PAGE_SCOPE )</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#setAttribute-java.lang.String-java.lang.Object-">setAttribute</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the attribute to set</dd>
<dd><code>attribute</code> - the value to associate with the name, or null if the attribute is to be removed from the page scope.</dd>
</dl>
</li>
</ul>
<a name="setAttribute-java.lang.String-java.lang.Object-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAttribute</h4>
<pre>public&nbsp;void&nbsp;setAttribute(java.lang.String&nbsp;name,
                         java.lang.Object&nbsp;o,
                         int&nbsp;scope)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#setAttribute-java.lang.String-java.lang.Object-int-">JspContext</a></code></span></div>
<div class="block">Register the name and value specified with appropriate scope semantics. If the value passed in is
 <code>null</code>, this has the same effect as calling <code>removeAttribute( name, scope )</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#setAttribute-java.lang.String-java.lang.Object-int-">setAttribute</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the attribute to set</dd>
<dd><code>o</code> - the object to associate with the name, or null if the attribute is to be removed from the specified
              scope.</dd>
<dd><code>scope</code> - the scope with which to associate the name/object</dd>
</dl>
</li>
</ul>
<a name="removeAttribute-java.lang.String-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAttribute</h4>
<pre>public&nbsp;void&nbsp;removeAttribute(java.lang.String&nbsp;name,
                            int&nbsp;scope)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#removeAttribute-java.lang.String-int-">JspContext</a></code></span></div>
<div class="block">Remove the object reference associated with the specified name in the given scope. Does nothing if there is no
 such object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#removeAttribute-java.lang.String-int-">removeAttribute</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The name of the object to remove.</dd>
<dd><code>scope</code> - The scope where to look.</dd>
</dl>
</li>
</ul>
<a name="getAttributesScope-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttributesScope</h4>
<pre>public&nbsp;int&nbsp;getAttributesScope(java.lang.String&nbsp;name)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#getAttributesScope-java.lang.String-">JspContext</a></code></span></div>
<div class="block">Get the scope where a given attribute is defined.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#getAttributesScope-java.lang.String-">getAttributesScope</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the attribute to return the scope for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the scope of the object associated with the name specified or 0</dd>
</dl>
</li>
</ul>
<a name="findAttribute-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findAttribute</h4>
<pre>public&nbsp;java.lang.Object&nbsp;findAttribute(java.lang.String&nbsp;name)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#findAttribute-java.lang.String-">JspContext</a></code></span></div>
<div class="block">Searches for the named attribute in page, request, session (if valid), and application scope(s) in order and
 returns the value associated or null.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#findAttribute-java.lang.String-">findAttribute</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the attribute to search for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value associated or null</dd>
</dl>
</li>
</ul>
<a name="getAttributeNamesInScope-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttributeNamesInScope</h4>
<pre>public&nbsp;java.util.Enumeration&lt;java.lang.String&gt;&nbsp;getAttributeNamesInScope(int&nbsp;scope)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#getAttributeNamesInScope-int-">JspContext</a></code></span></div>
<div class="block">Enumerate all the attributes in a given scope.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#getAttributeNamesInScope-int-">getAttributeNamesInScope</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scope</code> - the scope to enumerate all the attributes for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an enumeration of names (java.lang.String) of all the attributes the specified scope</dd>
</dl>
</li>
</ul>
<a name="removeAttribute-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAttribute</h4>
<pre>public&nbsp;void&nbsp;removeAttribute(java.lang.String&nbsp;name)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#removeAttribute-java.lang.String-">JspContext</a></code></span></div>
<div class="block">Remove the object reference associated with the given name from all scopes. Does nothing if there is no such
 object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#removeAttribute-java.lang.String-">removeAttribute</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The name of the object to remove.</dd>
</dl>
</li>
</ul>
<a name="getOut--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOut</h4>
<pre>public&nbsp;<a href="../../../../javax/servlet/jsp/JspWriter.html" title="class in javax.servlet.jsp">JspWriter</a>&nbsp;getOut()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#getOut--">JspContext</a></code></span></div>
<div class="block">The current value of the out object (a JspWriter).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#getOut--">getOut</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current JspWriter stream being used for client response</dd>
</dl>
</li>
</ul>
<a name="getSession--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSession</h4>
<pre>public&nbsp;<a href="../../../../javax/servlet/http/HttpSession.html" title="interface in javax.servlet.http">HttpSession</a>&nbsp;getSession()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#getSession--">PageContext</a></code></span></div>
<div class="block">The current value of the session object (an HttpSession).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#getSession--">getSession</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the HttpSession for this PageContext or null</dd>
</dl>
</li>
</ul>
<a name="getServlet--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServlet</h4>
<pre>public&nbsp;<a href="../../../../javax/servlet/Servlet.html" title="interface in javax.servlet">Servlet</a>&nbsp;getServlet()</pre>
</li>
</ul>
<a name="getServletConfig--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServletConfig</h4>
<pre>public&nbsp;<a href="../../../../javax/servlet/ServletConfig.html" title="interface in javax.servlet">ServletConfig</a>&nbsp;getServletConfig()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#getServletConfig--">PageContext</a></code></span></div>
<div class="block">The ServletConfig instance.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#getServletConfig--">getServletConfig</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<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&nbsp;<a href="../../../../javax/servlet/ServletContext.html" title="interface in javax.servlet">ServletContext</a>&nbsp;getServletContext()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#getServletContext--">PageContext</a></code></span></div>
<div class="block">The ServletContext instance.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#getServletContext--">getServletContext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the ServletContext for this PageContext</dd>
</dl>
</li>
</ul>
<a name="getRequest--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequest</h4>
<pre>public&nbsp;<a href="../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a>&nbsp;getRequest()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#getRequest--">PageContext</a></code></span></div>
<div class="block">The current value of the request object (a ServletRequest).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#getRequest--">getRequest</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<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&nbsp;<a href="../../../../javax/servlet/ServletResponse.html" title="interface in javax.servlet">ServletResponse</a>&nbsp;getResponse()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#getResponse--">PageContext</a></code></span></div>
<div class="block">The current value of the response object (a ServletResponse).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#getResponse--">getResponse</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<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&nbsp;java.lang.Exception&nbsp;getException()</pre>
<div class="block">Returns the exception associated with this page context, if any.
 
 Added wrapping for Throwables to avoid ClassCastException
 (see Bugzilla 31171 for details).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#getException--">getException</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The Exception associated with this page context, if any.</dd>
</dl>
</li>
</ul>
<a name="getPage--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPage</h4>
<pre>public&nbsp;java.lang.Object&nbsp;getPage()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#getPage--">PageContext</a></code></span></div>
<div class="block">The current value of the page object (In a Servlet environment, this is an instance of javax.servlet.Servlet).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#getPage--">getPage</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Page implementation class instance associated with this PageContext</dd>
</dl>
</li>
</ul>
<a name="include-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>include</h4>
<pre>public&nbsp;void&nbsp;include(java.lang.String&nbsp;relativeUrlPath)
             throws <a href="../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a>,
                    java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#include-java.lang.String-">PageContext</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#include-java.lang.String-">include</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<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="../../../../javax/servlet/ServletException.html" title="class in javax.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&nbsp;void&nbsp;include(java.lang.String&nbsp;relativeUrlPath,
                    boolean&nbsp;flush)
             throws <a href="../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a>,
                    java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#include-java.lang.String-boolean-">PageContext</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#include-java.lang.String-boolean-">include</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<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="../../../../javax/servlet/ServletException.html" title="class in javax.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="getVariableResolver--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVariableResolver</h4>
<pre>public&nbsp;<a href="../../../../javax/servlet/jsp/el/VariableResolver.html" title="interface in javax.servlet.jsp.el">VariableResolver</a>&nbsp;getVariableResolver()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#getVariableResolver--">JspContext</a></code></span></div>
<div class="block">Returns an instance of a VariableResolver that provides access to the implicit objects specified in the JSP
 specification using this JspContext as the context object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#getVariableResolver--">getVariableResolver</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A valid instance of a VariableResolver.</dd>
</dl>
</li>
</ul>
<a name="getELContext--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getELContext</h4>
<pre>public&nbsp;ELContext&nbsp;getELContext()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#getELContext--">JspContext</a></code></span></div>
<div class="block">Returns the <code>ELContext</code> associated with this <code>JspContext</code>.

 <p>
 The <code>ELContext</code> is created lazily and is reused if it already exists. There is a new
 <code>ELContext</code> for each <code>JspContext</code>.
 </p>

 <p>
 The <code>ELContext</code> must contain the <code>ELResolver</code> described in the JSP specification (and in
 the javadocs for <a href="../../../../javax/servlet/jsp/JspApplicationContext.html#addELResolver-ELResolver-"><code>JspApplicationContext.addELResolver(ELResolver)</code></a>).
 </p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#getELContext--">getELContext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <code>ELContext</code> associated with this <code>JspContext</code>.</dd>
</dl>
</li>
</ul>
<a name="forward-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>forward</h4>
<pre>public&nbsp;void&nbsp;forward(java.lang.String&nbsp;relativeUrlPath)
             throws <a href="../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a>,
                    java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#forward-java.lang.String-">PageContext</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#forward-java.lang.String-">forward</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<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><a href="../../../../javax/servlet/ServletException.html" title="class in javax.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="pushBody--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushBody</h4>
<pre>public&nbsp;<a href="../../../../javax/servlet/jsp/tagext/BodyContent.html" title="class in javax.servlet.jsp.tagext">BodyContent</a>&nbsp;pushBody()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#pushBody--">PageContext</a></code></span></div>
<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="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#pushBody--">pushBody</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new BodyContent</dd>
</dl>
</li>
</ul>
<a name="pushBody-java.io.Writer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushBody</h4>
<pre>public&nbsp;<a href="../../../../javax/servlet/jsp/JspWriter.html" title="class in javax.servlet.jsp">JspWriter</a>&nbsp;pushBody(java.io.Writer&nbsp;writer)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#pushBody-java.io.Writer-">JspContext</a></code></span></div>
<div class="block">Return a new JspWriter object that sends output to the provided Writer. Saves the current "out" JspWriter, and
 updates the value of the "out" attribute in the page scope attribute namespace of the JspContext.
 <p>
 The returned JspWriter must implement all methods and behave as though it were unbuffered. More specifically:
 </p>
 <ul>
 <li>clear() must throw an IOException</li>
 <li>clearBuffer() does nothing</li>
 <li>getBufferSize() always returns 0</li>
 <li>getRemaining() always returns 0</li>
 </ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#pushBody-java.io.Writer-">pushBody</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>writer</code> - The Writer for the returned JspWriter to send output to.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new JspWriter that writes to the given Writer.</dd>
</dl>
</li>
</ul>
<a name="popBody--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>popBody</h4>
<pre>public&nbsp;<a href="../../../../javax/servlet/jsp/JspWriter.html" title="class in javax.servlet.jsp">JspWriter</a>&nbsp;popBody()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html#popBody--">JspContext</a></code></span></div>
<div class="block">Return the previous JspWriter "out" saved by the matching pushBody(), and update the value of the "out" attribute
 in the page scope attribute namespace of the JspContext.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#popBody--">popBody</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the saved JspWriter.</dd>
</dl>
</li>
</ul>
<a name="getExpressionEvaluator--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExpressionEvaluator</h4>
<pre>public&nbsp;<a href="../../../../javax/servlet/jsp/el/ExpressionEvaluator.html" title="class in javax.servlet.jsp.el">ExpressionEvaluator</a>&nbsp;getExpressionEvaluator()</pre>
<div class="block">Provides programmatic access to the ExpressionEvaluator.
 The JSP Container must return a valid instance of an
 ExpressionEvaluator that can parse EL expressions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/JspContext.html#getExpressionEvaluator--">getExpressionEvaluator</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/JspContext.html" title="class in javax.servlet.jsp">JspContext</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A valid instance of an ExpressionEvaluator.</dd>
</dl>
</li>
</ul>
<a name="handlePageException-java.lang.Exception-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handlePageException</h4>
<pre>public&nbsp;void&nbsp;handlePageException(java.lang.Exception&nbsp;ex)
                         throws java.io.IOException,
                                <a href="../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#handlePageException-java.lang.Exception-">PageContext</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#handlePageException-java.lang.Exception-">handlePageException</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ex</code> - the exception to be handled</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an I/O error occurred while invoking the error page</dd>
<dd><code><a href="../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></code> - if an error occurs while invoking the error page</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/servlet/jsp/PageContext.html#handlePageException-java.lang.Throwable-"><code>PageContext.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&nbsp;void&nbsp;handlePageException(java.lang.Throwable&nbsp;t)
                         throws java.io.IOException,
                                <a href="../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html#handlePageException-java.lang.Throwable-">PageContext</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/jsp/PageContext.html#handlePageException-java.lang.Throwable-">handlePageException</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a></code></dd>
<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>java.io.IOException</code> - if an I/O error occurred while invoking the error page</dd>
<dd><code><a href="../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></code> - if an error occurs while invoking the error page</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/servlet/jsp/PageContext.html#handlePageException-java.lang.Exception-"><code>PageContext.handlePageException(Exception)</code></a></dd>
</dl>
</li>
</ul>
<a name="evaluateExpression-java.lang.String-java.lang.Class-javax.servlet.jsp.PageContext-org.apache.jasper.runtime.ProtectedFunctionMapper-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>evaluateExpression</h4>
<pre>public static&nbsp;java.lang.Object&nbsp;evaluateExpression(java.lang.String&nbsp;expression,
                                                  java.lang.Class&nbsp;expectedType,
                                                  <a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a>&nbsp;pageContext,
                                                  <a href="../../../../org/apache/jasper/runtime/ProtectedFunctionMapper.html" title="class in org.apache.jasper.runtime">ProtectedFunctionMapper</a>&nbsp;functionMap)
                                           throws ELException</pre>
<div class="block">Evaluates an EL expression</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The expression to be evaluated</dd>
<dd><code>expectedType</code> - The expected resulting type</dd>
<dd><code>pageContext</code> - The page context</dd>
<dd><code>functionMap</code> - Maps prefix and name to Method</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The result of the evaluation</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>ELException</code></dd>
</dl>
</li>
</ul>
<a name="getValueExpression-java.lang.String-javax.servlet.jsp.PageContext-java.lang.Class-FunctionMapper-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValueExpression</h4>
<pre>public static&nbsp;ValueExpression&nbsp;getValueExpression(java.lang.String&nbsp;expression,
                                                 <a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a>&nbsp;pageContext,
                                                 java.lang.Class&nbsp;expectedType,
                                                 FunctionMapper&nbsp;functionMap)</pre>
</li>
</ul>
<a name="getMethodExpression-java.lang.String-javax.servlet.jsp.PageContext-FunctionMapper-java.lang.Class-java.lang.Class:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMethodExpression</h4>
<pre>public static&nbsp;MethodExpression&nbsp;getMethodExpression(java.lang.String&nbsp;expression,
                                                   <a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a>&nbsp;pageContext,
                                                   FunctionMapper&nbsp;functionMap,
                                                   java.lang.Class&nbsp;expectedType,
                                                   java.lang.Class[]&nbsp;paramTypes)</pre>
</li>
</ul>
<a name="setValueVariable-javax.servlet.jsp.PageContext-java.lang.String-ValueExpression-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setValueVariable</h4>
<pre>public static&nbsp;void&nbsp;setValueVariable(<a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a>&nbsp;pageContext,
                                    java.lang.String&nbsp;variable,
                                    ValueExpression&nbsp;expression)</pre>
</li>
</ul>
<a name="setMethodVariable-javax.servlet.jsp.PageContext-java.lang.String-MethodExpression-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setMethodVariable</h4>
<pre>public static&nbsp;void&nbsp;setMethodVariable(<a href="../../../../javax/servlet/jsp/PageContext.html" title="class in javax.servlet.jsp">PageContext</a>&nbsp;pageContext,
                                     java.lang.String&nbsp;variable,
                                     MethodExpression&nbsp;expression)</pre>
</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="../../../../org/apache/jasper/runtime/JspWriterImpl.html" title="class in org.apache.jasper.runtime"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/jasper/runtime/ProtectedFunctionMapper.html" title="class in org.apache.jasper.runtime"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/jasper/runtime/PageContextImpl.html" target="_top">Frames</a></li>
<li><a href="PageContextImpl.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="#fields.inherited.from.class.javax.servlet.jsp.PageContext">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>
