<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_151) on Tue Feb 05 21:00:11 PST 2019 -->
<title>HttpRequestImpl</title>
<meta name="date" content="2019-02-05">
<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="HttpRequestImpl";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"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":10,"i35":10,"i36":42,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated 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/openejb/server/httpd/HttpRequest.Method.html" title="enum in org.apache.openejb.server.httpd"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.SessionInvalidateListener.html" title="class in org.apache.openejb.server.httpd"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/openejb/server/httpd/HttpRequestImpl.html" target="_top">Frames</a></li>
<li><a href="HttpRequestImpl.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><a href="#nested.class.summary">Nested</a>&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">org.apache.openejb.server.httpd</div>
<h2 title="Class HttpRequestImpl" class="title">Class HttpRequestImpl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.openejb.server.httpd.HttpRequestImpl</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Serializable, <a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a>, <a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">HttpRequestImpl</span>
extends java.lang.Object
implements <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></pre>
<div class="block">A class to take care of HTTP Requests.  It parses headers, content, form and url
 parameters.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../serialized-form.html#org.apache.openejb.server.httpd.HttpRequestImpl">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.SessionInvalidateListener.html" title="class in org.apache.openejb.server.httpd">HttpRequestImpl.SessionInvalidateListener</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.openejb.server.httpd.HttpRequest">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.openejb.server.httpd.<a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></h3>
<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.Method.html" title="enum in org.apache.openejb.server.httpd">HttpRequest.Method</a></code></li>
</ul>
</li>
</ul>
<!-- =========== 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.reflect.InvocationHandler</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#SERVLET_CONTEXT_HANDLER">SERVLET_CONTEXT_HANDLER</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.Class&lt;?&gt;[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#SERVLET_CONTEXT_INTERFACES">SERVLET_CONTEXT_INTERFACES</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.openejb.server.httpd.HttpRequest">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.openejb.server.httpd.<a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></h3>
<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_ACCEPT">HEADER_ACCEPT</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_ACCEPT_ENCODING">HEADER_ACCEPT_ENCODING</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_ACCEPT_LANGUAGE">HEADER_ACCEPT_LANGUAGE</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_CACHE_CONTROL">HEADER_CACHE_CONTROL</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_CONNECTION">HEADER_CONNECTION</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_CONTENT_LENGTH">HEADER_CONTENT_LENGTH</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_CONTENT_TYPE">HEADER_CONTENT_TYPE</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_COOKIE">HEADER_COOKIE</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_HOST">HEADER_HOST</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_SET_COOKIE">HEADER_SET_COOKIE</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#HEADER_USER_AGENT">HEADER_USER_AGENT</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#SERVLET_CONTEXT">SERVLET_CONTEXT</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#SERVLET_REQUEST">SERVLET_REQUEST</a>, <a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#SERVLET_RESPONSE">SERVLET_RESPONSE</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.javax.servlet.http.HttpServletRequest">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;javax.servlet.http.<a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></h3>
<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#BASIC_AUTH">BASIC_AUTH</a>, <a href="../../../../../javax/servlet/http/HttpServletRequest.html#CLIENT_CERT_AUTH">CLIENT_CERT_AUTH</a>, <a href="../../../../../javax/servlet/http/HttpServletRequest.html#DIGEST_AUTH">DIGEST_AUTH</a>, <a href="../../../../../javax/servlet/http/HttpServletRequest.html#FORM_AUTH">FORM_AUTH</a></code></li>
</ul>
</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="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#HttpRequestImpl-java.net.URI-">HttpRequestImpl</a></span>(java.net.URI&nbsp;socketURI)</code>&nbsp;</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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#addInternalParameter-java.lang.String-java.lang.String-">addInternalParameter</a></span>(java.lang.String&nbsp;key,
                    java.lang.String&nbsp;val)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#addQueryParams-java.lang.String-">addQueryParams</a></span>(java.lang.String&nbsp;query)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#authenticate-javax.servlet.http.HttpServletResponse-">authenticate</a></span>(<a href="../../../../../javax/servlet/http/HttpServletResponse.html" title="interface in javax.servlet.http">HttpServletResponse</a>&nbsp;httpServletResponse)</code>
<div class="block">Use the container login mechanism configured for the
 <code>ServletContext</code> to authenticate the user making
 this request.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#changeSessionId--">changeSessionId</a></span>()</code>
<div class="block">Change the session id of the current session associated with this
 request and return the new session id.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#destroy--">destroy</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#extractContextPath--">extractContextPath</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet">AsyncContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getAsyncContext--">getAsyncContext</a></span>()</code>
<div class="block">Gets the AsyncContext that was created or reinitialized by the
 most recent invocation of <a href="../../../../../javax/servlet/ServletRequest.html#startAsync--"><code>ServletRequest.startAsync()</code></a> or
 <a href="../../../../../javax/servlet/ServletRequest.html#startAsync-javax.servlet.ServletRequest-javax.servlet.ServletResponse-"><code>ServletRequest.startAsync(ServletRequest,ServletResponse)</code></a> on this request.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getAttribute-java.lang.String-">getAttribute</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Returns the value of the named attribute as an <code>Object</code>,
 or <code>null</code> if no attribute of the given name exists.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<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/openejb/server/httpd/HttpRequestImpl.html#getAttributeNames--">getAttributeNames</a></span>()</code>
<div class="block">Returns an <code>Enumeration</code> containing the
 names of the attributes available to this request.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getAuthType--">getAuthType</a></span>()</code>
<div class="block">Returns the name of the authentication scheme used to protect
 the servlet.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getCharacterEncoding--">getCharacterEncoding</a></span>()</code>
<div class="block">Returns the name of the character encoding used in the body of this
 request.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getContentLength--">getContentLength</a></span>()</code>
<div class="block">Returns the length, in bytes, of the request body and made available by
 the input stream, or -1 if the length is not known ir is greater than
 Integer.MAX_VALUE.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getContentLengthLong--">getContentLengthLong</a></span>()</code>
<div class="block">Returns the length, in bytes, of the request body and made available by
 the input stream, or -1 if the length is not known.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getContentType--">getContentType</a></span>()</code>
<div class="block">Returns the MIME type of the body of the request, or
 <code>null</code> if the type is not known.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getContextPath--">getContextPath</a></span>()</code>
<div class="block">Returns the portion of the request URI that indicates the context
 of the request.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getCookie-java.lang.String-">getCookie</a></span>(java.lang.String&nbsp;name)</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../../javax/servlet/http/Cookie.html" title="class in javax.servlet.http">Cookie</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getCookies--">getCookies</a></span>()</code>
<div class="block">Returns an array containing all of the <code>Cookie</code>
 objects the client sent with this request.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getDateHeader-java.lang.String-">getDateHeader</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Returns the value of the specified request header
 as a <code>long</code> value that represents a
 <code>Date</code> object.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../javax/servlet/DispatcherType.html" title="enum in javax.servlet">DispatcherType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getDispatcherType--">getDispatcherType</a></span>()</code>
<div class="block">Gets the dispatcher type of this request.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getFormParameter-java.lang.String-">getFormParameter</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Gets a form parameter based on the name passed in.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>java.util.Map&lt;java.lang.String,java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getFormParameters--">getFormParameters</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getHeader-java.lang.String-">getHeader</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Gets a header based the header name passed in.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<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/openejb/server/httpd/HttpRequestImpl.html#getHeaderNames--">getHeaderNames</a></span>()</code>
<div class="block">Returns an enumeration of all the header names
 this request contains.</div>
</td>
</tr>
<tr id="i23" 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/openejb/server/httpd/HttpRequestImpl.html#getHeaders-java.lang.String-">getHeaders</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Returns all the values of the specified request header
 as an <code>Enumeration</code> of <code>String</code> objects.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../../../../javax/servlet/ServletInputStream.html" title="class in javax.servlet">ServletInputStream</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getInputStream--">getInputStream</a></span>()</code>
<div class="block">Retrieves the body of the request as binary data using
 a <a href="../../../../../javax/servlet/ServletInputStream.html" title="class in javax.servlet"><code>ServletInputStream</code></a>.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected java.util.Map&lt;?,?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getInternalCookies--">getInternalCookies</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getIntHeader-java.lang.String-">getIntHeader</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Returns the value of the specified request header
 as an <code>int</code>.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getLocalAddr--">getLocalAddr</a></span>()</code>
<div class="block">Returns the Internet Protocol (IP) address of the interface on
 which the request  was received.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>java.util.Locale</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getLocale--">getLocale</a></span>()</code>
<div class="block">Returns the preferred <code>Locale</code> that the client will
 accept content in, based on the Accept-Language header.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>java.util.Enumeration&lt;java.util.Locale&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getLocales--">getLocales</a></span>()</code>
<div class="block">Returns an <code>Enumeration</code> of <code>Locale</code> objects
 indicating, in decreasing order starting with the preferred locale, the
 locales that are acceptable to the client based on the Accept-Language
 header.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getLocalName--">getLocalName</a></span>()</code>
<div class="block">Returns the host name of the Internet Protocol (IP) interface on
 which the request was received.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getLocalPort--">getLocalPort</a></span>()</code>
<div class="block">Returns the Internet Protocol (IP) port number of the interface
 on which the request was received.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getMethod--">getMethod</a></span>()</code>
<div class="block">Gets the request method.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getParameter-java.lang.String-">getParameter</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Gets a form or URL query parameter based on the name passed in.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>java.util.Map&lt;java.lang.String,java.lang.String[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getParameterMap--">getParameterMap</a></span>()</code>
<div class="block">Returns a java.util.Map of the parameters of this request.</div>
</td>
</tr>
<tr id="i35" 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/openejb/server/httpd/HttpRequestImpl.html#getParameterNames--">getParameterNames</a></span>()</code>
<div class="block">Returns an <code>Enumeration</code> of <code>String</code>
 objects containing the names of the parameters contained
 in this request.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>java.util.Map&lt;java.lang.String,java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getParameters--">getParameters</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>java.lang.String[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getParameterValues-java.lang.String-">getParameterValues</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Returns an array of <code>String</code> objects containing
 all of the values the given request parameter has, or
 <code>null</code> if the parameter does not exist.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="../../../../../javax/servlet/http/Part.html" title="interface in javax.servlet.http">Part</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getPart-java.lang.String-">getPart</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Gets the <a href="../../../../../javax/servlet/http/Part.html" title="interface in javax.servlet.http"><code>Part</code></a> with the given name.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>java.util.Collection&lt;<a href="../../../../../javax/servlet/http/Part.html" title="interface in javax.servlet.http">Part</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getParts--">getParts</a></span>()</code>
<div class="block">Gets all the <a href="../../../../../javax/servlet/http/Part.html" title="interface in javax.servlet.http"><code>Part</code></a> components of this request, provided
 that it is of type <code>multipart/form-data</code>.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getPathInfo--">getPathInfo</a></span>()</code>
<div class="block">Returns any extra path information associated with
 the URL the client sent when it made this request.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getPathTranslated--">getPathTranslated</a></span>()</code>
<div class="block">Returns any extra path information after the servlet name
 but before the query string, and translates it to a real
 path.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getProtocol--">getProtocol</a></span>()</code>
<div class="block">Returns the name and version of the protocol the request uses
 in the form <i>protocol/majorVersion.minorVersion</i>, for
 example, HTTP/1.1.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getQueryString--">getQueryString</a></span>()</code>
<div class="block">Returns the query string that is contained in the request
 URL after the path.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>java.io.BufferedReader</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getReader--">getReader</a></span>()</code>
<div class="block">Retrieves the body of the request as character data using
 a <code>BufferedReader</code>.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getRealPath-java.lang.String-">getRealPath</a></span>(java.lang.String&nbsp;s)</code>&nbsp;</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getRemoteAddr--">getRemoteAddr</a></span>()</code>
<div class="block">Returns the Internet Protocol (IP) address of the client
 or last proxy that sent the request.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getRemoteHost--">getRemoteHost</a></span>()</code>
<div class="block">Returns the fully qualified name of the client
 or the last proxy that sent the request.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getRemotePort--">getRemotePort</a></span>()</code>
<div class="block">Returns the Internet Protocol (IP) source port of the client
 or last proxy that sent the request.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getRemoteUser--">getRemoteUser</a></span>()</code>
<div class="block">Returns the login of the user making this request, if the
 user has been authenticated, or <code>null</code> if the user
 has not been authenticated.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code><a href="../../../../../javax/servlet/RequestDispatcher.html" title="interface in javax.servlet">RequestDispatcher</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getRequestDispatcher-java.lang.String-">getRequestDispatcher</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Returns a <a href="../../../../../javax/servlet/RequestDispatcher.html" title="interface in javax.servlet"><code>RequestDispatcher</code></a> object that acts as a wrapper for
 the resource located at the given path.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getRequestedSessionId--">getRequestedSessionId</a></span>()</code>
<div class="block">Returns the session ID specified by the client.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getRequestURI--">getRequestURI</a></span>()</code>
<div class="block">Returns the part of this request's URL from the protocol
 name up to the query string in the first line of the HTTP request.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>java.lang.StringBuffer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getRequestURL--">getRequestURL</a></span>()</code>
<div class="block">Reconstructs the URL the client used to make the request.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getScheme--">getScheme</a></span>()</code>
<div class="block">Returns the name of the scheme used to make this request,
 for example,
 <code>http</code>, <code>https</code>, or <code>ftp</code>.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getServerName--">getServerName</a></span>()</code>
<div class="block">Returns the host name of the server to which the request was sent.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getServerPort--">getServerPort</a></span>()</code>
<div class="block">Returns the port number to which the request was sent.</div>
</td>
</tr>
<tr id="i57" 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/openejb/server/httpd/HttpRequestImpl.html#getServletContext--">getServletContext</a></span>()</code>
<div class="block">Gets the servlet context to which this ServletRequest was last
 dispatched.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getServletPath--">getServletPath</a></span>()</code>
<div class="block">Returns the part of this request's URL that calls
 the servlet.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/openejb/server/httpd/HttpSession.html" title="interface in org.apache.openejb.server.httpd">HttpSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getSession--">getSession</a></span>()</code>
<div class="block">Returns the current session associated with this request,
 or if the request does not have a session, creates one.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/openejb/server/httpd/HttpSession.html" title="interface in org.apache.openejb.server.httpd">HttpSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getSession-boolean-">getSession</a></span>(boolean&nbsp;create)</code>
<div class="block">Returns the current <code>HttpSession</code>
 associated with this request or, if there is no
 current session and <code>create</code> is true, returns
 a new session.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>protected java.net.URI</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getSocketURI--">getSocketURI</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>java.net.URI</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getURI--">getURI</a></span>()</code>
<div class="block">Gets the URI for the current URL page.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>java.security.Principal</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#getUserPrincipal--">getUserPrincipal</a></span>()</code>
<div class="block">Returns a <code>java.security.Principal</code> object containing
 the name of the current authenticated user.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#init--">init</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#initPathFromContext-java.lang.String-">initPathFromContext</a></span>(java.lang.String&nbsp;context)</code>&nbsp;</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#initServletPath-java.lang.String-">initServletPath</a></span>(java.lang.String&nbsp;servlet)</code>&nbsp;</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#isAsyncStarted--">isAsyncStarted</a></span>()</code>
<div class="block">Checks if this request has been put into asynchronous mode.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#isAsyncSupported--">isAsyncSupported</a></span>()</code>
<div class="block">Checks if this request supports asynchronous operation.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#isRequestedSessionIdFromCookie--">isRequestedSessionIdFromCookie</a></span>()</code>
<div class="block">Checks whether the requested session ID was conveyed to the
 server as an HTTP cookie.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#isRequestedSessionIdFromUrl--">isRequestedSessionIdFromUrl</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#isRequestedSessionIdFromURL--">isRequestedSessionIdFromURL</a></span>()</code>
<div class="block">Checks whether the requested session ID was conveyed to the
 server as part of the request URL.</div>
</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#isRequestedSessionIdValid--">isRequestedSessionIdValid</a></span>()</code>
<div class="block">Checks whether the requested session ID is still valid.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#isSecure--">isSecure</a></span>()</code>
<div class="block">Returns a boolean indicating whether this request was made using a
 secure channel, such as HTTPS.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#isUserInRole-java.lang.String-">isUserInRole</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Returns a boolean indicating whether the authenticated user is included
 in the specified logical "role".</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#login-java.lang.String-java.lang.String-">login</a></span>(java.lang.String&nbsp;s,
     java.lang.String&nbsp;s1)</code>
<div class="block">Validate the provided username and password in the password validation
 realm used by the web container login mechanism configured for the
 <code>ServletContext</code>.</div>
</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#logout--">logout</a></span>()</code>
<div class="block">Establish <code>null</code> as the value returned when
 <code>getUserPrincipal</code>, <code>getRemoteUser</code>,
 and <code>getAuthType</code> is called on the request.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#noPathInfo--">noPathInfo</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#parseURI-java.util.StringTokenizer-">parseURI</a></span>(java.util.StringTokenizer&nbsp;lineParts)</code>
<div class="block">parses the URI into the different parts</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#print-org.apache.openejb.util.Logger-boolean-">print</a></span>(<a href="../../../../../org/apache/openejb/util/Logger.html" title="class in org.apache.openejb.util">Logger</a>&nbsp;log,
     boolean&nbsp;formatXml)</code>&nbsp;</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#readMessage-java.io.InputStream-">readMessage</a></span>(java.io.InputStream&nbsp;input)</code>
<div class="block">parses the request into the 3 different parts, request, headers, and body</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#removeAttribute-java.lang.String-">removeAttribute</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Removes an attribute from this request.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#requestRawPath--">requestRawPath</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#setApplication-org.apache.openejb.core.WebContext-">setApplication</a></span>(<a href="../../../../../org/apache/openejb/core/WebContext.html" title="class in org.apache.openejb.core">WebContext</a>&nbsp;app)</code>&nbsp;</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#setAttribute-java.lang.String-java.lang.Object-">setAttribute</a></span>(java.lang.String&nbsp;name,
            java.lang.Object&nbsp;value)</code>
<div class="block">Stores an attribute in this request.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#setBeginListener-org.apache.openejb.server.httpd.BeginWebBeansListener-">setBeginListener</a></span>(<a href="../../../../../org/apache/openejb/server/httpd/BeginWebBeansListener.html" title="class in org.apache.openejb.server.httpd">BeginWebBeansListener</a>&nbsp;begin)</code>&nbsp;</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#setCharacterEncoding-java.lang.String-">setCharacterEncoding</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Overrides the name of the character encoding used in the body of this
 request.</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#setEndListener-org.apache.openejb.server.httpd.EndWebBeansListener-">setEndListener</a></span>(<a href="../../../../../org/apache/openejb/server/httpd/EndWebBeansListener.html" title="class in org.apache.openejb.server.httpd">EndWebBeansListener</a>&nbsp;end)</code>&nbsp;</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#setPath-java.lang.String-">setPath</a></span>(java.lang.String&nbsp;path)</code>&nbsp;</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#setUri-java.net.URI-">setUri</a></span>(java.net.URI&nbsp;uri)</code>&nbsp;</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code><a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet">AsyncContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#startAsync--">startAsync</a></span>()</code>
<div class="block">Puts this request into asynchronous mode, and initializes its
 <a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet"><code>AsyncContext</code></a> with the original (unwrapped) ServletRequest
 and ServletResponse objects.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code><a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet">AsyncContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#startAsync-javax.servlet.ServletRequest-javax.servlet.ServletResponse-">startAsync</a></span>(<a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a>&nbsp;servletRequest,
          <a href="../../../../../javax/servlet/ServletResponse.html" title="interface in javax.servlet">ServletResponse</a>&nbsp;servletResponse)</code>
<div class="block">Puts this request into asynchronous mode, and initializes its
 <a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet"><code>AsyncContext</code></a> with the given request and response objects.</div>
</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../../../../../javax/servlet/http/HttpUpgradeHandler.html" title="interface in javax.servlet.http">HttpUpgradeHandler</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.html#upgrade-java.lang.Class-">upgrade</a></span>(java.lang.Class&lt;T&gt;&nbsp;httpUpgradeHandlerClass)</code>
<div class="block">Creates an instance of <code>HttpUpgradeHandler</code> for a given
 class and uses it for the http protocol upgrade processing.</div>
</td>
</tr>
</table>
<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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.http.HttpServletRequest">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;javax.servlet.http.<a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></h3>
<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getHttpServletMapping--">getHttpServletMapping</a>, <a href="../../../../../javax/servlet/http/HttpServletRequest.html#getTrailerFields--">getTrailerFields</a>, <a href="../../../../../javax/servlet/http/HttpServletRequest.html#isTrailerFieldsReady--">isTrailerFieldsReady</a>, <a href="../../../../../javax/servlet/http/HttpServletRequest.html#newPushBuilder--">newPushBuilder</a></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="SERVLET_CONTEXT_INTERFACES">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SERVLET_CONTEXT_INTERFACES</h4>
<pre>public static final&nbsp;java.lang.Class&lt;?&gt;[] SERVLET_CONTEXT_INTERFACES</pre>
</li>
</ul>
<a name="SERVLET_CONTEXT_HANDLER">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SERVLET_CONTEXT_HANDLER</h4>
<pre>public static final&nbsp;java.lang.reflect.InvocationHandler SERVLET_CONTEXT_HANDLER</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="HttpRequestImpl-java.net.URI-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>HttpRequestImpl</h4>
<pre>public&nbsp;HttpRequestImpl(java.net.URI&nbsp;socketURI)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="setUri-java.net.URI-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUri</h4>
<pre>public&nbsp;void&nbsp;setUri(java.net.URI&nbsp;uri)</pre>
</li>
</ul>
<a name="getHeader-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHeader</h4>
<pre>public&nbsp;java.lang.String&nbsp;getHeader(java.lang.String&nbsp;name)</pre>
<div class="block">Gets a header based the header name passed in.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getHeader-java.lang.String-">getHeader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The name of the header to get</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The value of the header</dd>
</dl>
</li>
</ul>
<a name="getHeaderNames--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHeaderNames</h4>
<pre>public&nbsp;java.util.Enumeration&lt;java.lang.String&gt;&nbsp;getHeaderNames()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getHeaderNames--">HttpServletRequest</a></code></span></div>
<div class="block">Returns an enumeration of all the header names
 this request contains. If the request has no
 headers, this method returns an empty enumeration.

 <p>Some servlet containers do not allow
 servlets to access headers using this method, in
 which case this method returns <code>null</code></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getHeaderNames--">getHeaderNames</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an enumeration of all the
                                header names sent with this
                                request; if the request has
                                no headers, an empty enumeration;
                                if the servlet container does not
                                allow servlets to use this method,
                                <code>null</code></dd>
</dl>
</li>
</ul>
<a name="getHeaders-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHeaders</h4>
<pre>public&nbsp;java.util.Enumeration&lt;java.lang.String&gt;&nbsp;getHeaders(java.lang.String&nbsp;s)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getHeaders-java.lang.String-">HttpServletRequest</a></code></span></div>
<div class="block">Returns all the values of the specified request header
 as an <code>Enumeration</code> of <code>String</code> objects.

 <p>Some headers, such as <code>Accept-Language</code> can be sent
 by clients as several headers each with a different value rather than
 sending the header as a comma separated list.

 <p>If the request did not include any headers
 of the specified name, this method returns an empty
 <code>Enumeration</code>.
 The header name is case insensitive. You can use
 this method with any request header.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getHeaders-java.lang.String-">getHeaders</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - a <code>String</code> specifying the
                                header name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <code>Enumeration</code> containing
                        the values of the requested header. If
                        the request does not have any headers of
                        that name return an empty
                        enumeration. If
                        the container does not allow access to
                        header information, return null</dd>
</dl>
</li>
</ul>
<a name="getIntHeader-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIntHeader</h4>
<pre>public&nbsp;int&nbsp;getIntHeader(java.lang.String&nbsp;s)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getIntHeader-java.lang.String-">HttpServletRequest</a></code></span></div>
<div class="block">Returns the value of the specified request header
 as an <code>int</code>. If the request does not have a header
 of the specified name, this method returns -1. If the
 header cannot be converted to an integer, this method
 throws a <code>NumberFormatException</code>.

 <p>The header name is case insensitive.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getIntHeader-java.lang.String-">getIntHeader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - a <code>String</code> specifying the name
                                of a request header</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an integer expressing the value
                                of the request header or -1
                                if the request doesn't have a
                                header of this name</dd>
</dl>
</li>
</ul>
<a name="getFormParameter-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFormParameter</h4>
<pre>public&nbsp;java.lang.String&nbsp;getFormParameter(java.lang.String&nbsp;name)</pre>
<div class="block">Gets a form parameter based on the name passed in.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The name of the form parameter to get</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The value of the parameter</dd>
</dl>
</li>
</ul>
<a name="getFormParameters--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFormParameters</h4>
<pre>public&nbsp;java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;getFormParameters()</pre>
</li>
</ul>
<a name="getMethod--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMethod</h4>
<pre>public&nbsp;java.lang.String&nbsp;getMethod()</pre>
<div class="block">Gets the request method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getMethod--">getMethod</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the request method</dd>
</dl>
</li>
</ul>
<a name="getPart-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPart</h4>
<pre>public&nbsp;<a href="../../../../../javax/servlet/http/Part.html" title="interface in javax.servlet.http">Part</a>&nbsp;getPart(java.lang.String&nbsp;s)
             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 interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getPart-java.lang.String-">HttpServletRequest</a></code></span></div>
<div class="block">Gets the <a href="../../../../../javax/servlet/http/Part.html" title="interface in javax.servlet.http"><code>Part</code></a> with the given name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getPart-java.lang.String-">getPart</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - the name of the requested <code>Part</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <code>Part</code> with the given name, or
 <code>null</code> if this request is of type
 <code>multipart/form-data</code>, but does not
 contain the requested <code>Part</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an I/O error occurred during the retrieval
 of the requested <code>Part</code></dd>
<dd><code><a href="../../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></code> - if this request is not of type
 <code>multipart/form-data</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/annotation/MultipartConfig.html#maxFileSize--"><code>MultipartConfig.maxFileSize()</code></a>, 
<a href="../../../../../javax/servlet/annotation/MultipartConfig.html#maxRequestSize--"><code>MultipartConfig.maxRequestSize()</code></a></dd>
</dl>
</li>
</ul>
<a name="upgrade-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>upgrade</h4>
<pre>public&nbsp;&lt;T extends <a href="../../../../../javax/servlet/http/HttpUpgradeHandler.html" title="interface in javax.servlet.http">HttpUpgradeHandler</a>&gt;&nbsp;T&nbsp;upgrade(java.lang.Class&lt;T&gt;&nbsp;httpUpgradeHandlerClass)
                                         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 interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#upgrade-java.lang.Class-">HttpServletRequest</a></code></span></div>
<div class="block">Creates an instance of <code>HttpUpgradeHandler</code> for a given
 class and uses it for the http protocol upgrade processing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#upgrade-java.lang.Class-">upgrade</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The <code>Class</code>, which extends <a href="../../../../../javax/servlet/http/HttpUpgradeHandler.html" title="interface in javax.servlet.http"><code>HttpUpgradeHandler</code></a>, of the <code>handlerClass</code>.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>httpUpgradeHandlerClass</code> - The <code>HttpUpgradeHandler</code> class used for the upgrade.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an instance of the <code>HttpUpgradeHandler</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an I/O error occurred during the upgrade</dd>
<dd><code><a href="../../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></code> - if the given <code>handlerClass</code> fails to
 be instantiated</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/http/HttpUpgradeHandler.html" title="interface in javax.servlet.http"><code>HttpUpgradeHandler</code></a>, 
<a href="../../../../../javax/servlet/http/WebConnection.html" title="interface in javax.servlet.http"><code>WebConnection</code></a></dd>
</dl>
</li>
</ul>
<a name="getParts--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParts</h4>
<pre>public&nbsp;java.util.Collection&lt;<a href="../../../../../javax/servlet/http/Part.html" title="interface in javax.servlet.http">Part</a>&gt;&nbsp;getParts()
                                    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 interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getParts--">HttpServletRequest</a></code></span></div>
<div class="block">Gets all the <a href="../../../../../javax/servlet/http/Part.html" title="interface in javax.servlet.http"><code>Part</code></a> components of this request, provided
 that it is of type <code>multipart/form-data</code>.

 <p>If this request is of type <code>multipart/form-data</code>, but
 does not contain any <code>Part</code> components, the returned
 <code>Collection</code> will be empty.

 <p>Any changes to the returned <code>Collection</code> must not
 affect this <code>HttpServletRequest</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getParts--">getParts</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a (possibly empty) <code>Collection</code> of the
 <code>Part</code> components of this request</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an I/O error occurred during the retrieval
 of the <a href="../../../../../javax/servlet/http/Part.html" title="interface in javax.servlet.http"><code>Part</code></a> components of this request</dd>
<dd><code><a href="../../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></code> - if this request is not of type
 <code>multipart/form-data</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/annotation/MultipartConfig.html#maxFileSize--"><code>MultipartConfig.maxFileSize()</code></a>, 
<a href="../../../../../javax/servlet/annotation/MultipartConfig.html#maxRequestSize--"><code>MultipartConfig.maxRequestSize()</code></a></dd>
</dl>
</li>
</ul>
<a name="noPathInfo--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noPathInfo</h4>
<pre>public&nbsp;void&nbsp;noPathInfo()</pre>
</li>
</ul>
<a name="getPathInfo--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPathInfo</h4>
<pre>public&nbsp;java.lang.String&nbsp;getPathInfo()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getPathInfo--">HttpServletRequest</a></code></span></div>
<div class="block">Returns any extra path information associated with
 the URL the client sent when it made this request.
 The extra path information follows the servlet path
 but precedes the query string and will start with
 a "/" character.

 <p>This method returns <code>null</code> if there
 was no extra path information.

 <p>Same as the value of the CGI variable PATH_INFO.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getPathInfo--">getPathInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code>, decoded by the
                        web container, specifying
                        extra path information that comes
                        after the servlet path but before
                        the query string in the request URL;
                        or <code>null</code> if the URL does not have
                        any extra path information</dd>
</dl>
</li>
</ul>
<a name="getPathTranslated--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPathTranslated</h4>
<pre>public&nbsp;java.lang.String&nbsp;getPathTranslated()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getPathTranslated--">HttpServletRequest</a></code></span></div>
<div class="block">Returns any extra path information after the servlet name
 but before the query string, and translates it to a real
 path. Same as the value of the CGI variable PATH_TRANSLATED.

 <p>If the URL does not have any extra path information,
 this method returns <code>null</code> or the servlet container
 cannot translate the virtual path to a real path for any reason
 (such as when the web application is executed from an archive).

 The web container does not decode this string.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getPathTranslated--">getPathTranslated</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> specifying the
                        real path, or <code>null</code> if
                        the URL does not have any extra path
                        information</dd>
</dl>
</li>
</ul>
<a name="getQueryString--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQueryString</h4>
<pre>public&nbsp;java.lang.String&nbsp;getQueryString()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getQueryString--">HttpServletRequest</a></code></span></div>
<div class="block">Returns the query string that is contained in the request
 URL after the path. This method returns <code>null</code>
 if the URL does not have a query string. Same as the value
 of the CGI variable QUERY_STRING.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getQueryString--">getQueryString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing the query
                        string or <code>null</code> if the URL
                        contains no query string. The value is not
                        decoded by the container.</dd>
</dl>
</li>
</ul>
<a name="getRemoteUser--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemoteUser</h4>
<pre>public&nbsp;java.lang.String&nbsp;getRemoteUser()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getRemoteUser--">HttpServletRequest</a></code></span></div>
<div class="block">Returns the login of the user making this request, if the
 user has been authenticated, or <code>null</code> if the user
 has not been authenticated.
 Whether the user name is sent with each subsequent request
 depends on the browser and type of authentication. Same as the
 value of the CGI variable REMOTE_USER.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getRemoteUser--">getRemoteUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> specifying the login
                        of the user making this request, or <code>null</code>
                        if the user login is not known</dd>
</dl>
</li>
</ul>
<a name="getRequestedSessionId--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequestedSessionId</h4>
<pre>public&nbsp;java.lang.String&nbsp;getRequestedSessionId()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getRequestedSessionId--">HttpServletRequest</a></code></span></div>
<div class="block">Returns the session ID specified by the client. This may
 not be the same as the ID of the current valid session
 for this request.
 If the client did not specify a session ID, this method returns
 <code>null</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getRequestedSessionId--">getRequestedSessionId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> specifying the session
                        ID, or <code>null</code> if the request did
                        not specify a session ID</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/http/HttpServletRequest.html#isRequestedSessionIdValid--"><code>HttpServletRequest.isRequestedSessionIdValid()</code></a></dd>
</dl>
</li>
</ul>
<a name="getRequestURI--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequestURI</h4>
<pre>public&nbsp;java.lang.String&nbsp;getRequestURI()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getRequestURI--">HttpServletRequest</a></code></span></div>
<div class="block">Returns the part of this request's URL from the protocol
 name up to the query string in the first line of the HTTP request.
 The web container does not decode this String.
 For example:

 <table summary="Examples of Returned Values">
 <tr align=left><th>First line of HTTP request      </th>
 <th>     Returned Value</th>
 <tr><td>POST /some/path.html HTTP/1.1<td><td>/some/path.html
 <tr><td>GET http://foo.bar/a.html HTTP/1.0
 <td><td>/a.html
 <tr><td>HEAD /xyz?a=b HTTP/1.1<td><td>/xyz
 </table>

 <p>To reconstruct an URL with a scheme and host, use
 <a href="../../../../../javax/servlet/http/HttpUtils.html#getRequestURL-javax.servlet.http.HttpServletRequest-"><code>HttpUtils.getRequestURL(javax.servlet.http.HttpServletRequest)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getRequestURI--">getRequestURI</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing
                        the part of the URL from the
                        protocol name up to the query string</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/http/HttpUtils.html#getRequestURL-javax.servlet.http.HttpServletRequest-"><code>HttpUtils.getRequestURL(javax.servlet.http.HttpServletRequest)</code></a></dd>
</dl>
</li>
</ul>
<a name="getRequestURL--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequestURL</h4>
<pre>public&nbsp;java.lang.StringBuffer&nbsp;getRequestURL()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getRequestURL--">HttpServletRequest</a></code></span></div>
<div class="block">Reconstructs the URL the client used to make the request.
 The returned URL contains a protocol, server name, port
 number, and server path, but it does not include query
 string parameters.

 <p>If this request has been forwarded using
 <a href="../../../../../javax/servlet/RequestDispatcher.html#forward-javax.servlet.ServletRequest-javax.servlet.ServletResponse-"><code>RequestDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)</code></a>, the server path in the
 reconstructed URL must reflect the path used to obtain the
 RequestDispatcher, and not the server path specified by the client.

 <p>Because this method returns a <code>StringBuffer</code>,
 not a string, you can modify the URL easily, for example,
 to append query parameters.

 <p>This method is useful for creating redirect messages
 and for reporting errors.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getRequestURL--">getRequestURL</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>StringBuffer</code> object containing
                        the reconstructed URL</dd>
</dl>
</li>
</ul>
<a name="getServletPath--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServletPath</h4>
<pre>public&nbsp;java.lang.String&nbsp;getServletPath()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getServletPath--">HttpServletRequest</a></code></span></div>
<div class="block">Returns the part of this request's URL that calls
 the servlet. This path starts with a "/" character
 and includes either the servlet name or a path to
 the servlet, but does not include any extra path
 information or a query string. Same as the value of
 the CGI variable SCRIPT_NAME.

 <p>This method will return an empty string ("") if the
 servlet used to process this request was matched using
 the "/*" pattern.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getServletPath--">getServletPath</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing
                        the name or path of the servlet being
                        called, as specified in the request URL,
                        decoded, or an empty string if the servlet
                        used to process the request is matched
                        using the "/*" pattern.</dd>
</dl>
</li>
</ul>
<a name="initServletPath-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initServletPath</h4>
<pre>public&nbsp;void&nbsp;initServletPath(java.lang.String&nbsp;servlet)</pre>
</li>
</ul>
<a name="addQueryParams-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addQueryParams</h4>
<pre>public&nbsp;void&nbsp;addQueryParams(java.lang.String&nbsp;query)</pre>
</li>
</ul>
<a name="getURI--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getURI</h4>
<pre>public&nbsp;java.net.URI&nbsp;getURI()</pre>
<div class="block">Gets the URI for the current URL page.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#getURI--">getURI</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the URI</dd>
</dl>
</li>
</ul>
<a name="getContentLength--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContentLength</h4>
<pre>public&nbsp;int&nbsp;getContentLength()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getContentLength--">ServletRequest</a></code></span></div>
<div class="block">Returns the length, in bytes, of the request body and made available by
 the input stream, or -1 if the length is not known ir is greater than
 Integer.MAX_VALUE. For HTTP servlets,
 same as the value of the CGI variable CONTENT_LENGTH.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getContentLength--">getContentLength</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#getContentLength--">getContentLength</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an integer containing the length of the request body or -1 if
 the length is not known or is greater than Integer.MAX_VALUE.</dd>
</dl>
</li>
</ul>
<a name="getContentLengthLong--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContentLengthLong</h4>
<pre>public&nbsp;long&nbsp;getContentLengthLong()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getContentLengthLong--">ServletRequest</a></code></span></div>
<div class="block">Returns the length, in bytes, of the request body and made available by
 the input stream, or -1 if the length is not known. For HTTP servlets,
 same as the value of the CGI variable CONTENT_LENGTH.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getContentLengthLong--">getContentLengthLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a long containing the length of the request body or -1L if
 the length is not known</dd>
</dl>
</li>
</ul>
<a name="getContentType--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContentType</h4>
<pre>public&nbsp;java.lang.String&nbsp;getContentType()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getContentType--">ServletRequest</a></code></span></div>
<div class="block">Returns the MIME type of the body of the request, or
 <code>null</code> if the type is not known. For HTTP servlets,
 same as the value of the CGI variable CONTENT_TYPE.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getContentType--">getContentType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#getContentType--">getContentType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing the name of the MIME type
 of the request, or null if the type is not known</dd>
</dl>
</li>
</ul>
<a name="getDispatcherType--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDispatcherType</h4>
<pre>public&nbsp;<a href="../../../../../javax/servlet/DispatcherType.html" title="enum in javax.servlet">DispatcherType</a>&nbsp;getDispatcherType()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getDispatcherType--">ServletRequest</a></code></span></div>
<div class="block">Gets the dispatcher type of this request.

 <p>The dispatcher type of a request is used by the container
 to select the filters that need to be applied to the request:
 Only filters with matching dispatcher type and url patterns will
 be applied.

 <p>Allowing a filter that has been configured for multiple
 dispatcher types to query a request for its dispatcher type
 allows the filter to process the request differently depending on
 its dispatcher type.

 <p>The initial dispatcher type of a request is defined as
 <code>DispatcherType.REQUEST</code>. The dispatcher type of a request
 dispatched via <a href="../../../../../javax/servlet/RequestDispatcher.html#forward-javax.servlet.ServletRequest-javax.servlet.ServletResponse-"><code>RequestDispatcher.forward(ServletRequest,
 ServletResponse)</code></a> or <a href="../../../../../javax/servlet/RequestDispatcher.html#include-javax.servlet.ServletRequest-javax.servlet.ServletResponse-"><code>RequestDispatcher.include(ServletRequest,
 ServletResponse)</code></a> is given as <code>DispatcherType.FORWARD</code> or
 <code>DispatcherType.INCLUDE</code>, respectively, while the
 dispatcher type of an asynchronous request dispatched via
 one of the <a href="../../../../../javax/servlet/AsyncContext.html#dispatch--"><code>AsyncContext.dispatch()</code></a> methods is given as
 <code>DispatcherType.ASYNC</code>. Finally, the dispatcher type of a
 request dispatched to an error page by the container's error handling
 mechanism is given as <code>DispatcherType.ERROR</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getDispatcherType--">getDispatcherType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the dispatcher type of this request</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/DispatcherType.html" title="enum in javax.servlet"><code>DispatcherType</code></a></dd>
</dl>
</li>
</ul>
<a name="getInputStream--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInputStream</h4>
<pre>public&nbsp;<a href="../../../../../javax/servlet/ServletInputStream.html" title="class in javax.servlet">ServletInputStream</a>&nbsp;getInputStream()
                                  throws java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getInputStream--">ServletRequest</a></code></span></div>
<div class="block">Retrieves the body of the request as binary data using
 a <a href="../../../../../javax/servlet/ServletInputStream.html" title="class in javax.servlet"><code>ServletInputStream</code></a>.  Either this method or
 <a href="../../../../../javax/servlet/ServletRequest.html#getReader--"><code>ServletRequest.getReader()</code></a> may be called to read the body, not both.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getInputStream--">getInputStream</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <a href="../../../../../javax/servlet/ServletInputStream.html" title="class in javax.servlet"><code>ServletInputStream</code></a> object containing
 the body of the request</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an input or output exception occurred</dd>
</dl>
</li>
</ul>
<a name="getLocalAddr--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalAddr</h4>
<pre>public&nbsp;java.lang.String&nbsp;getLocalAddr()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getLocalAddr--">ServletRequest</a></code></span></div>
<div class="block">Returns the Internet Protocol (IP) address of the interface on
 which the request  was received.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getLocalAddr--">getLocalAddr</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing the
 IP address on which the request was received.</dd>
</dl>
</li>
</ul>
<a name="getLocale--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocale</h4>
<pre>public&nbsp;java.util.Locale&nbsp;getLocale()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getLocale--">ServletRequest</a></code></span></div>
<div class="block">Returns the preferred <code>Locale</code> that the client will
 accept content in, based on the Accept-Language header.
 If the client request doesn't provide an Accept-Language header,
 this method returns the default locale for the server.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getLocale--">getLocale</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the preferred <code>Locale</code> for the client</dd>
</dl>
</li>
</ul>
<a name="getLocales--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocales</h4>
<pre>public&nbsp;java.util.Enumeration&lt;java.util.Locale&gt;&nbsp;getLocales()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getLocales--">ServletRequest</a></code></span></div>
<div class="block">Returns an <code>Enumeration</code> of <code>Locale</code> objects
 indicating, in decreasing order starting with the preferred locale, the
 locales that are acceptable to the client based on the Accept-Language
 header.
 If the client request doesn't provide an Accept-Language header,
 this method returns an <code>Enumeration</code> containing one
 <code>Locale</code>, the default locale for the server.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getLocales--">getLocales</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <code>Enumeration</code> of preferred
 <code>Locale</code> objects for the client</dd>
</dl>
</li>
</ul>
<a name="getLocalName--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getLocalName()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getLocalName--">ServletRequest</a></code></span></div>
<div class="block">Returns the host name of the Internet Protocol (IP) interface on
 which the request was received.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getLocalName--">getLocalName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing the host
         name of the IP on which the request was received.</dd>
</dl>
</li>
</ul>
<a name="getLocalPort--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalPort</h4>
<pre>public&nbsp;int&nbsp;getLocalPort()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getLocalPort--">ServletRequest</a></code></span></div>
<div class="block">Returns the Internet Protocol (IP) port number of the interface
 on which the request was received.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getLocalPort--">getLocalPort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an integer specifying the port number</dd>
</dl>
</li>
</ul>
<a name="readMessage-java.io.InputStream-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readMessage</h4>
<pre>protected&nbsp;boolean&nbsp;readMessage(java.io.InputStream&nbsp;input)
                       throws java.io.IOException</pre>
<div class="block">parses the request into the 3 different parts, request, headers, and body</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>input</code> - the data input for this page</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an exception is thrown</dd>
</dl>
</li>
</ul>
<a name="print-org.apache.openejb.util.Logger-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>print</h4>
<pre>public&nbsp;void&nbsp;print(<a href="../../../../../org/apache/openejb/util/Logger.html" title="class in org.apache.openejb.util">Logger</a>&nbsp;log,
                  boolean&nbsp;formatXml)</pre>
</li>
</ul>
<a name="parseURI-java.util.StringTokenizer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseURI</h4>
<pre>public&nbsp;void&nbsp;parseURI(java.util.StringTokenizer&nbsp;lineParts)
              throws java.io.IOException</pre>
<div class="block">parses the URI into the different parts</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lineParts</code> - a StringTokenizer of the URI</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an exeption is thrown</dd>
</dl>
</li>
</ul>
<a name="authenticate-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>authenticate</h4>
<pre>public&nbsp;boolean&nbsp;authenticate(<a href="../../../../../javax/servlet/http/HttpServletResponse.html" title="interface in javax.servlet.http">HttpServletResponse</a>&nbsp;httpServletResponse)
                     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 interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#authenticate-javax.servlet.http.HttpServletResponse-">HttpServletRequest</a></code></span></div>
<div class="block">Use the container login mechanism configured for the
 <code>ServletContext</code> to authenticate the user making
 this request.

 <p>This method may modify and commit the argument
 <code>HttpServletResponse</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#authenticate-javax.servlet.http.HttpServletResponse-">authenticate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>httpServletResponse</code> - The <code>HttpServletResponse</code>
 associated with this <code>HttpServletRequest</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> when non-null values were or have been
 established as the values returned by <code>getUserPrincipal</code>,
 <code>getRemoteUser</code>, and <code>getAuthType</code>. Return
 <code>false</code> if authentication is incomplete and the underlying
 login mechanism has committed, in the response, the message (e.g.,
 challenge) and HTTP status code to be returned to the user.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an input or output error occurred while
 reading from this request or writing to the given response</dd>
<dd><code><a href="../../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></code> - if the authentication failed and
 the caller is responsible for handling the error (i.e., the
 underlying login mechanism did NOT establish the message and
 HTTP status code to be returned to the user)</dd>
</dl>
</li>
</ul>
<a name="getAuthType--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAuthType</h4>
<pre>public&nbsp;java.lang.String&nbsp;getAuthType()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getAuthType--">HttpServletRequest</a></code></span></div>
<div class="block">Returns the name of the authentication scheme used to protect
 the servlet. All servlet containers support basic, form and client
 certificate authentication, and may additionally support digest
 authentication.
 If the servlet is not authenticated <code>null</code> is returned.

 <p>Same as the value of the CGI variable AUTH_TYPE.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getAuthType--">getAuthType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>one of the static members BASIC_AUTH,
                        FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH
                        (suitable for == comparison) or
                        the container-specific string indicating
                        the authentication scheme, or
                        <code>null</code> if the request was
                        not authenticated.</dd>
</dl>
</li>
</ul>
<a name="getContextPath--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContextPath</h4>
<pre>public&nbsp;java.lang.String&nbsp;getContextPath()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getContextPath--">HttpServletRequest</a></code></span></div>
<div class="block">Returns the portion of the request URI that indicates the context
 of the request. The context path always comes first in a request
 URI. The path starts with a "/" character but does not end with a "/"
 character. For servlets in the default (root) context, this method
 returns "". The container does not decode this string.

 <p>It is possible that a servlet container may match a context by
 more than one context path. In such cases this method will return the
 actual context path used by the request and it may differ from the
 path returned by the
 <a href="../../../../../javax/servlet/ServletContext.html#getContextPath--"><code>ServletContext.getContextPath()</code></a> method.
 The context path returned by
 <a href="../../../../../javax/servlet/ServletContext.html#getContextPath--"><code>ServletContext.getContextPath()</code></a>
 should be considered as the prime or preferred context path of the
 application.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getContextPath--">getContextPath</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> specifying the
                        portion of the request URI that indicates the context
                        of the request</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/ServletContext.html#getContextPath--"><code>ServletContext.getContextPath()</code></a></dd>
</dl>
</li>
</ul>
<a name="extractContextPath--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>extractContextPath</h4>
<pre>public&nbsp;java.lang.String&nbsp;extractContextPath()</pre>
</li>
</ul>
<a name="getCookies--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCookies</h4>
<pre>public&nbsp;<a href="../../../../../javax/servlet/http/Cookie.html" title="class in javax.servlet.http">Cookie</a>[]&nbsp;getCookies()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getCookies--">HttpServletRequest</a></code></span></div>
<div class="block">Returns an array containing all of the <code>Cookie</code>
 objects the client sent with this request.
 This method returns <code>null</code> if no cookies were sent.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getCookies--">getCookies</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array of all the <code>Cookies</code>
                        included with this request, or <code>null</code>
                        if the request has no cookies</dd>
</dl>
</li>
</ul>
<a name="getInternalCookies--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInternalCookies</h4>
<pre>protected&nbsp;java.util.Map&lt;?,?&gt;&nbsp;getInternalCookies()</pre>
</li>
</ul>
<a name="getDateHeader-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDateHeader</h4>
<pre>public&nbsp;long&nbsp;getDateHeader(java.lang.String&nbsp;s)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getDateHeader-java.lang.String-">HttpServletRequest</a></code></span></div>
<div class="block">Returns the value of the specified request header
 as a <code>long</code> value that represents a
 <code>Date</code> object. Use this method with
 headers that contain dates, such as
 <code>If-Modified-Since</code>.

 <p>The date is returned as
 the number of milliseconds since January 1, 1970 GMT.
 The header name is case insensitive.

 <p>If the request did not have a header of the
 specified name, this method returns -1. If the header
 can't be converted to a date, the method throws
 an <code>IllegalArgumentException</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getDateHeader-java.lang.String-">getDateHeader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - a <code>String</code> specifying the
                                name of the header</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>long</code> value
                                representing the date specified
                                in the header expressed as
                                the number of milliseconds
                                since January 1, 1970 GMT,
                                or -1 if the named header
                                was not included with the
                                request</dd>
</dl>
</li>
</ul>
<a name="getCookie-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCookie</h4>
<pre>protected&nbsp;java.lang.String&nbsp;getCookie(java.lang.String&nbsp;name)</pre>
</li>
</ul>
<a name="getSession-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSession</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/openejb/server/httpd/HttpSession.html" title="interface in org.apache.openejb.server.httpd">HttpSession</a>&nbsp;getSession(boolean&nbsp;create)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getSession-boolean-">HttpServletRequest</a></code></span></div>
<div class="block">Returns the current <code>HttpSession</code>
 associated with this request or, if there is no
 current session and <code>create</code> is true, returns
 a new session.

 <p>If <code>create</code> is <code>false</code>
 and the request has no valid <code>HttpSession</code>,
 this method returns <code>null</code>.

 <p>To make sure the session is properly maintained,
 you must call this method before
 the response is committed. If the container is using cookies
 to maintain session integrity and is asked to create a new session
 when the response is committed, an IllegalStateException is thrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getSession-boolean-">getSession</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>create</code> - <code>true</code> to create
                        a new session for this request if necessary;
                        <code>false</code> to return <code>null</code>
                        if there's no current session</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>HttpSession</code> associated
                        with this request or <code>null</code> if
                        <code>create</code> is <code>false</code>
                        and the request has no valid session</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getSession--"><code>HttpServletRequest.getSession()</code></a></dd>
</dl>
</li>
</ul>
<a name="getSocketURI--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSocketURI</h4>
<pre>protected&nbsp;java.net.URI&nbsp;getSocketURI()</pre>
</li>
</ul>
<a name="getUserPrincipal--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUserPrincipal</h4>
<pre>public&nbsp;java.security.Principal&nbsp;getUserPrincipal()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getUserPrincipal--">HttpServletRequest</a></code></span></div>
<div class="block">Returns a <code>java.security.Principal</code> object containing
 the name of the current authenticated user. If the user has not been
 authenticated, the method returns <code>null</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getUserPrincipal--">getUserPrincipal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>java.security.Principal</code> containing
                        the name of the user making this request;
                        <code>null</code> if the user has not been
                        authenticated</dd>
</dl>
</li>
</ul>
<a name="isRequestedSessionIdFromCookie--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRequestedSessionIdFromCookie</h4>
<pre>public&nbsp;boolean&nbsp;isRequestedSessionIdFromCookie()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#isRequestedSessionIdFromCookie--">HttpServletRequest</a></code></span></div>
<div class="block"><p>Checks whether the requested session ID was conveyed to the
 server as an HTTP cookie.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#isRequestedSessionIdFromCookie--">isRequestedSessionIdFromCookie</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the session ID
                                was conveyed to the server an an HTTP
                                cookie; otherwise, <code>false</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getSession-boolean-"><code>HttpServletRequest.getSession(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="isRequestedSessionIdFromUrl--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRequestedSessionIdFromUrl</h4>
<pre>public&nbsp;boolean&nbsp;isRequestedSessionIdFromUrl()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#isRequestedSessionIdFromUrl--">isRequestedSessionIdFromUrl</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the session ID was conveyed to the
                                server as part of a URL; otherwise,
                                <code>false</code></dd>
</dl>
</li>
</ul>
<a name="isRequestedSessionIdFromURL--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRequestedSessionIdFromURL</h4>
<pre>public&nbsp;boolean&nbsp;isRequestedSessionIdFromURL()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#isRequestedSessionIdFromURL--">HttpServletRequest</a></code></span></div>
<div class="block"><p>Checks whether the requested session ID was conveyed to the
 server as part of the request URL.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#isRequestedSessionIdFromURL--">isRequestedSessionIdFromURL</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the session ID was conveyed to the
                                server as part of a URL; otherwise,
                                <code>false</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getSession-boolean-"><code>HttpServletRequest.getSession(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="isRequestedSessionIdValid--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRequestedSessionIdValid</h4>
<pre>public&nbsp;boolean&nbsp;isRequestedSessionIdValid()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#isRequestedSessionIdValid--">HttpServletRequest</a></code></span></div>
<div class="block">Checks whether the requested session ID is still valid.

 <p>If the client did not specify any session ID, this method returns
 <code>false</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#isRequestedSessionIdValid--">isRequestedSessionIdValid</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this
                                request has an id for a valid session
                                in the current session context;
                                <code>false</code> otherwise</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getRequestedSessionId--"><code>HttpServletRequest.getRequestedSessionId()</code></a>, 
<a href="../../../../../javax/servlet/http/HttpServletRequest.html#getSession-boolean-"><code>HttpServletRequest.getSession(boolean)</code></a>, 
<a href="../../../../../javax/servlet/http/HttpSessionContext.html" title="interface in javax.servlet.http"><code>HttpSessionContext</code></a></dd>
</dl>
</li>
</ul>
<a name="isUserInRole-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isUserInRole</h4>
<pre>public&nbsp;boolean&nbsp;isUserInRole(java.lang.String&nbsp;s)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#isUserInRole-java.lang.String-">HttpServletRequest</a></code></span></div>
<div class="block">Returns a boolean indicating whether the authenticated user is included
 in the specified logical "role".  Roles and role membership can be
 defined using deployment descriptors.  If the user has not been
 authenticated, the method returns <code>false</code>.

 <p>The role name "*" should never be used as an argument in calling
 <code>isUserInRole</code>. Any call to <code>isUserInRole</code> with
 "*" must return false.
 If the role-name of the security-role to be tested is "**", and
 the application has NOT declared an application security-role with
 role-name "**", <code>isUserInRole</code> must only return true if
 the user has been authenticated; that is, only when
 <a href="../../../../../javax/servlet/http/HttpServletRequest.html#getRemoteUser--"><code>HttpServletRequest.getRemoteUser()</code></a> and <a href="../../../../../javax/servlet/http/HttpServletRequest.html#getUserPrincipal--"><code>HttpServletRequest.getUserPrincipal()</code></a> would both return
 a non-null value. Otherwise, the container must check
 the user for membership in the application role.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#isUserInRole-java.lang.String-">isUserInRole</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - a <code>String</code> specifying the name
                                of the role</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>boolean</code> indicating whether
                        the user making this request belongs to a given role;
                        <code>false</code> if the user has not been
                        authenticated</dd>
</dl>
</li>
</ul>
<a name="login-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>login</h4>
<pre>public&nbsp;void&nbsp;login(java.lang.String&nbsp;s,
                  java.lang.String&nbsp;s1)
           throws <a href="../../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#login-java.lang.String-java.lang.String-">HttpServletRequest</a></code></span></div>
<div class="block">Validate the provided username and password in the password validation
 realm used by the web container login mechanism configured for the
 <code>ServletContext</code>.

 <p>This method returns without throwing a <code>ServletException</code>
 when the login mechanism configured for the <code>ServletContext</code>
 supports username password validation, and when, at the time of the
 call to login, the identity of the caller of the request had
 not been established (i.e, all of <code>getUserPrincipal</code>,
 <code>getRemoteUser</code>, and <code>getAuthType</code> return null),
 and when validation of the provided credentials is successful.
 Otherwise, this method throws a <code>ServletException</code> as
 described below.

 <p>When this method returns without throwing an exception, it must
 have established non-null values as the values returned by
 <code>getUserPrincipal</code>, <code>getRemoteUser</code>, and
 <code>getAuthType</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#login-java.lang.String-java.lang.String-">login</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - The <code>String</code> value corresponding to
 the login identifier of the user.</dd>
<dd><code>s1</code> - The password <code>String</code> corresponding
 to the identified user.</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 configured login mechanism
                                      does not support username
                                      password authentication, or if a
                                      non-null caller identity had
                                      already been established (prior
                                      to the call to login), or if
                                      validation of the provided
                                      username and password fails.</dd>
</dl>
</li>
</ul>
<a name="logout--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logout</h4>
<pre>public&nbsp;void&nbsp;logout()
            throws <a href="../../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#logout--">HttpServletRequest</a></code></span></div>
<div class="block">Establish <code>null</code> as the value returned when
 <code>getUserPrincipal</code>, <code>getRemoteUser</code>,
 and <code>getAuthType</code> is called on the request.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#logout--">logout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></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 logout fails</dd>
</dl>
</li>
</ul>
<a name="getSession--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSession</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/openejb/server/httpd/HttpSession.html" title="interface in org.apache.openejb.server.httpd">HttpSession</a>&nbsp;getSession()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getSession--">HttpServletRequest</a></code></span></div>
<div class="block">Returns the current session associated with this request,
 or if the request does not have a session, creates one.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getSession--">getSession</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>HttpSession</code> associated
                        with this request</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/http/HttpServletRequest.html#getSession-boolean-"><code>HttpServletRequest.getSession(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="changeSessionId--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>changeSessionId</h4>
<pre>public&nbsp;java.lang.String&nbsp;changeSessionId()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#changeSessionId--">HttpServletRequest</a></code></span></div>
<div class="block">Change the session id of the current session associated with this
 request and return the new session id.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/http/HttpServletRequest.html#changeSessionId--">changeSessionId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new session id</dd>
</dl>
</li>
</ul>
<a name="getAsyncContext--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAsyncContext</h4>
<pre>public&nbsp;<a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet">AsyncContext</a>&nbsp;getAsyncContext()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getAsyncContext--">ServletRequest</a></code></span></div>
<div class="block">Gets the AsyncContext that was created or reinitialized by the
 most recent invocation of <a href="../../../../../javax/servlet/ServletRequest.html#startAsync--"><code>ServletRequest.startAsync()</code></a> or
 <a href="../../../../../javax/servlet/ServletRequest.html#startAsync-javax.servlet.ServletRequest-javax.servlet.ServletResponse-"><code>ServletRequest.startAsync(ServletRequest,ServletResponse)</code></a> on this request.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getAsyncContext--">getAsyncContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the AsyncContext that was created or reinitialized by the
 most recent invocation of <a href="../../../../../javax/servlet/ServletRequest.html#startAsync--"><code>ServletRequest.startAsync()</code></a> or
 <a href="../../../../../javax/servlet/ServletRequest.html#startAsync-javax.servlet.ServletRequest-javax.servlet.ServletResponse-"><code>ServletRequest.startAsync(ServletRequest,ServletResponse)</code></a> on
 this request</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 interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getAttribute-java.lang.String-">ServletRequest</a></code></span></div>
<div class="block">Returns the value of the named attribute as an <code>Object</code>,
 or <code>null</code> if no attribute of the given name exists.

 <p> Attributes can be set two ways.  The servlet container may set
 attributes to make available custom information about a request.
 For example, for requests made using HTTPS, the attribute
 <code>javax.servlet.request.X509Certificate</code> can be used to
 retrieve information on the certificate of the client.  Attributes
 can also be set programatically using
 <a href="../../../../../javax/servlet/ServletRequest.html#setAttribute-java.lang.String-java.lang.Object-"><code>ServletRequest.setAttribute(java.lang.String, java.lang.Object)</code></a>.  This allows information to be
 embedded into a request before a <a href="../../../../../javax/servlet/RequestDispatcher.html" title="interface in javax.servlet"><code>RequestDispatcher</code></a> call.

 <p>Attribute names should follow the same conventions as package
 names. This specification reserves names matching <code>java.*</code>,
 <code>javax.*</code>, and <code>sun.*</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getAttribute-java.lang.String-">getAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#getAttribute-java.lang.String-">getAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - a <code>String</code> specifying the name of the attribute</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <code>Object</code> containing the value of the attribute,
 or <code>null</code> if the attribute does not exist</dd>
</dl>
</li>
</ul>
<a name="getAttributeNames--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttributeNames</h4>
<pre>public&nbsp;java.util.Enumeration&lt;java.lang.String&gt;&nbsp;getAttributeNames()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getAttributeNames--">ServletRequest</a></code></span></div>
<div class="block">Returns an <code>Enumeration</code> containing the
 names of the attributes available to this request.
 This method returns an empty <code>Enumeration</code>
 if the request has no attributes available to it.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getAttributeNames--">getAttributeNames</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <code>Enumeration</code> of strings containing the names
 of the request's attributes</dd>
</dl>
</li>
</ul>
<a name="getCharacterEncoding--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCharacterEncoding</h4>
<pre>public&nbsp;java.lang.String&nbsp;getCharacterEncoding()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getCharacterEncoding--">ServletRequest</a></code></span></div>
<div class="block">Returns the name of the character encoding used in the body of this
 request. This method returns <code>null</code> if no request encoding
 character encoding has been specified. The following methods for
 specifying the request character encoding are consulted, in decreasing
 order of priority: per request, per web app (using
 <a href="../../../../../javax/servlet/ServletContext.html#setRequestCharacterEncoding-java.lang.String-"><code>ServletContext.setRequestCharacterEncoding(java.lang.String)</code></a>, deployment
 descriptor), and per container (for all web applications deployed in
 that container, using vendor specific configuration).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getCharacterEncoding--">getCharacterEncoding</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing the name of the character
 encoding, or <code>null</code> if the request does not specify a
 character encoding</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;value)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#setAttribute-java.lang.String-java.lang.Object-">ServletRequest</a></code></span></div>
<div class="block">Stores an attribute in this request.
 Attributes are reset between requests.  This method is most
 often used in conjunction with <a href="../../../../../javax/servlet/RequestDispatcher.html" title="interface in javax.servlet"><code>RequestDispatcher</code></a>.

 <p>Attribute names should follow the same conventions as
 package names.
<br> If the object passed in is null, the effect is the same as
 calling <a href="../../../../../javax/servlet/ServletRequest.html#removeAttribute-java.lang.String-"><code>ServletRequest.removeAttribute(java.lang.String)</code></a>.
 <br> It is warned that when the request is dispatched from the
 servlet resides in a different web application by
 <code>RequestDispatcher</code>, the object set by this method
 may not be correctly retrieved in the caller servlet.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#setAttribute-java.lang.String-java.lang.Object-">setAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#setAttribute-java.lang.String-java.lang.Object-">setAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - a <code>String</code> specifying
 the name of the attribute</dd>
<dd><code>value</code> - the <code>Object</code> to be stored</dd>
</dl>
</li>
</ul>
<a name="setCharacterEncoding-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCharacterEncoding</h4>
<pre>public&nbsp;void&nbsp;setCharacterEncoding(java.lang.String&nbsp;s)
                          throws java.io.UnsupportedEncodingException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#setCharacterEncoding-java.lang.String-">ServletRequest</a></code></span></div>
<div class="block">Overrides the name of the character encoding used in the body of this
 request. This method must be called prior to reading request parameters
 or reading input using getReader(). Otherwise, it has no effect.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#setCharacterEncoding-java.lang.String-">setCharacterEncoding</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - <code>String</code> containing the name of
 the character encoding.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.UnsupportedEncodingException</code> - if this ServletRequest is still
 in a state where a character encoding may be set,
 but the specified encoding is invalid</dd>
</dl>
</li>
</ul>
<a name="startAsync--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startAsync</h4>
<pre>public&nbsp;<a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet">AsyncContext</a>&nbsp;startAsync()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#startAsync--">ServletRequest</a></code></span></div>
<div class="block">Puts this request into asynchronous mode, and initializes its
 <a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet"><code>AsyncContext</code></a> with the original (unwrapped) ServletRequest
 and ServletResponse objects.

 <p>Calling this method will cause committal of the associated
 response to be delayed until <a href="../../../../../javax/servlet/AsyncContext.html#complete--"><code>AsyncContext.complete()</code></a> is
 called on the returned <a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet"><code>AsyncContext</code></a>, or the asynchronous
 operation has timed out.

 <p>Calling <a href="../../../../../javax/servlet/AsyncContext.html#hasOriginalRequestAndResponse--"><code>AsyncContext.hasOriginalRequestAndResponse()</code></a> on
 the returned AsyncContext will return <code>true</code>. Any filters
 invoked in the <i>outbound</i> direction after this request was put
 into asynchronous mode may use this as an indication that any request
 and/or response wrappers that they added during their <i>inbound</i>
 invocation need not stay around for the duration of the asynchronous
 operation, and therefore any of their associated resources may be
 released.

 <p>This method clears the list of <a href="../../../../../javax/servlet/AsyncListener.html" title="interface in javax.servlet"><code>AsyncListener</code></a> instances
 (if any) that were registered with the AsyncContext returned by the
 previous call to one of the startAsync methods, after calling each
 AsyncListener at its <a href="../../../../../javax/servlet/AsyncListener.html#onStartAsync-javax.servlet.AsyncEvent-"><code>onStartAsync</code></a>
 method.

 <p>Subsequent invocations of this method, or its overloaded
 variant, will return the same AsyncContext instance, reinitialized
 as appropriate.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#startAsync--">startAsync</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the (re)initialized AsyncContext</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/AsyncContext.html#dispatch--"><code>AsyncContext.dispatch()</code></a></dd>
</dl>
</li>
</ul>
<a name="startAsync-javax.servlet.ServletRequest-javax.servlet.ServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startAsync</h4>
<pre>public&nbsp;<a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet">AsyncContext</a>&nbsp;startAsync(<a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a>&nbsp;servletRequest,
                               <a href="../../../../../javax/servlet/ServletResponse.html" title="interface in javax.servlet">ServletResponse</a>&nbsp;servletResponse)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#startAsync-javax.servlet.ServletRequest-javax.servlet.ServletResponse-">ServletRequest</a></code></span></div>
<div class="block">Puts this request into asynchronous mode, and initializes its
 <a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet"><code>AsyncContext</code></a> with the given request and response objects.

 <p>The ServletRequest and ServletResponse arguments must be
 the same instances, or instances of <a href="../../../../../javax/servlet/ServletRequestWrapper.html" title="class in javax.servlet"><code>ServletRequestWrapper</code></a> and
 <a href="../../../../../javax/servlet/ServletResponseWrapper.html" title="class in javax.servlet"><code>ServletResponseWrapper</code></a> that wrap them, that were passed to the
 <a href="../../../../../javax/servlet/Servlet.html#service-javax.servlet.ServletRequest-javax.servlet.ServletResponse-"><code>service</code></a> method of the Servlet or the
 <a href="../../../../../javax/servlet/Filter.html#doFilter-javax.servlet.ServletRequest-javax.servlet.ServletResponse-javax.servlet.FilterChain-"><code>doFilter</code></a> method of the Filter, respectively,
 in whose scope this method is being called.

 <p>Calling this method will cause committal of the associated
 response to be delayed until <a href="../../../../../javax/servlet/AsyncContext.html#complete--"><code>AsyncContext.complete()</code></a> is
 called on the returned <a href="../../../../../javax/servlet/AsyncContext.html" title="interface in javax.servlet"><code>AsyncContext</code></a>, or the asynchronous
 operation has timed out.

 <p>Calling <a href="../../../../../javax/servlet/AsyncContext.html#hasOriginalRequestAndResponse--"><code>AsyncContext.hasOriginalRequestAndResponse()</code></a> on
 the returned AsyncContext will return <code>false</code>,
 unless the passed in ServletRequest and ServletResponse arguments
 are the original ones or do not carry any application-provided wrappers.
 Any filters invoked in the <i>outbound</i> direction after this
 request was put into asynchronous mode may use this as an indication
 that some of the request and/or response wrappers that they added
 during their <i>inbound</i> invocation may need to stay in place for
 the duration of the asynchronous operation, and their associated
 resources may not be released.
 A ServletRequestWrapper applied during the <i>inbound</i>
 invocation of a filter may be released by the <i>outbound</i>
 invocation of the filter only if the given <code>servletRequest</code>,
 which is used to initialize the AsyncContext and will be returned by
 a call to <a href="../../../../../javax/servlet/AsyncContext.html#getRequest--"><code>AsyncContext.getRequest()</code></a>, does not contain said
 ServletRequestWrapper. The same holds true for ServletResponseWrapper
 instances.

 <p>This method clears the list of <a href="../../../../../javax/servlet/AsyncListener.html" title="interface in javax.servlet"><code>AsyncListener</code></a> instances
 (if any) that were registered with the AsyncContext returned by the
 previous call to one of the startAsync methods, after calling each
 AsyncListener at its <a href="../../../../../javax/servlet/AsyncListener.html#onStartAsync-javax.servlet.AsyncEvent-"><code>onStartAsync</code></a>
 method.

 <p>Subsequent invocations of this method, or its zero-argument
 variant, will return the same AsyncContext instance, reinitialized
 as appropriate. If a call to this method is followed by a call to its
 zero-argument variant, the specified (and possibly wrapped) request
 and response objects will remain <i>locked in</i> on the returned
 AsyncContext.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#startAsync-javax.servlet.ServletRequest-javax.servlet.ServletResponse-">startAsync</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>servletRequest</code> - the ServletRequest used to initialize the
 AsyncContext</dd>
<dd><code>servletResponse</code> - the ServletResponse used to initialize the
 AsyncContext</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the (re)initialized AsyncContext</dd>
</dl>
</li>
</ul>
<a name="addInternalParameter-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addInternalParameter</h4>
<pre>public&nbsp;void&nbsp;addInternalParameter(java.lang.String&nbsp;key,
                                 java.lang.String&nbsp;val)</pre>
</li>
</ul>
<a name="getParameter-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameter</h4>
<pre>public&nbsp;java.lang.String&nbsp;getParameter(java.lang.String&nbsp;name)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#getParameter-java.lang.String-">HttpRequest</a></code></span></div>
<div class="block">Gets a form or URL query parameter based on the name passed in.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getParameter-java.lang.String-">getParameter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#getParameter-java.lang.String-">getParameter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - a <code>String</code> specifying the name of the parameter</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> representing the single value of
 the parameter</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/ServletRequest.html#getParameterValues-java.lang.String-"><code>ServletRequest.getParameterValues(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a name="getParameterMap--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterMap</h4>
<pre>public&nbsp;java.util.Map&lt;java.lang.String,java.lang.String[]&gt;&nbsp;getParameterMap()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getParameterMap--">ServletRequest</a></code></span></div>
<div class="block">Returns a java.util.Map of the parameters of this request.

 <p>Request parameters are extra information sent with the request.
 For HTTP servlets, parameters are contained in the query string or
 posted form data.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getParameterMap--">getParameterMap</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an immutable java.util.Map containing parameter names as
 keys and parameter values as map values. The keys in the parameter
 map are of type String. The values in the parameter map are of type
 String array.</dd>
</dl>
</li>
</ul>
<a name="getParameterNames--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterNames</h4>
<pre>public&nbsp;java.util.Enumeration&lt;java.lang.String&gt;&nbsp;getParameterNames()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getParameterNames--">ServletRequest</a></code></span></div>
<div class="block">Returns an <code>Enumeration</code> of <code>String</code>
 objects containing the names of the parameters contained
 in this request. If the request has
 no parameters, the method returns an empty <code>Enumeration</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getParameterNames--">getParameterNames</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <code>Enumeration</code> of <code>String</code>
 objects, each <code>String</code> containing the name of
 a request parameter; or an empty <code>Enumeration</code>
 if the request has no parameters</dd>
</dl>
</li>
</ul>
<a name="getParameterValues-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterValues</h4>
<pre>public&nbsp;java.lang.String[]&nbsp;getParameterValues(java.lang.String&nbsp;s)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getParameterValues-java.lang.String-">ServletRequest</a></code></span></div>
<div class="block">Returns an array of <code>String</code> objects containing
 all of the values the given request parameter has, or
 <code>null</code> if the parameter does not exist.

 <p>If the parameter has a single value, the array has a length
 of 1.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getParameterValues-java.lang.String-">getParameterValues</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - a <code>String</code> containing the name of
 the parameter whose value is requested</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array of <code>String</code> objects
 containing the parameter's values</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/ServletRequest.html#getParameter-java.lang.String-"><code>ServletRequest.getParameter(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a name="getProtocol--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProtocol</h4>
<pre>public&nbsp;java.lang.String&nbsp;getProtocol()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getProtocol--">ServletRequest</a></code></span></div>
<div class="block">Returns the name and version of the protocol the request uses
 in the form <i>protocol/majorVersion.minorVersion</i>, for
 example, HTTP/1.1. For HTTP servlets, the value
 returned is the same as the value of the CGI variable
 <code>SERVER_PROTOCOL</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getProtocol--">getProtocol</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing the protocol
 name and version number</dd>
</dl>
</li>
</ul>
<a name="getReader--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReader</h4>
<pre>public&nbsp;java.io.BufferedReader&nbsp;getReader()
                                 throws java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getReader--">ServletRequest</a></code></span></div>
<div class="block">Retrieves the body of the request as character data using
 a <code>BufferedReader</code>.  The reader translates the character
 data according to the character encoding used on the body.
 Either this method or <a href="../../../../../javax/servlet/ServletRequest.html#getInputStream--"><code>ServletRequest.getInputStream()</code></a> may be called to read the
 body, not both.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>BufferedReader</code> containing the body of the request</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.UnsupportedEncodingException</code> - if the character set encoding
 used is not supported and the text cannot be decoded</dd>
<dd><code>java.io.IOException</code> - if an input or output exception occurred</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/ServletRequest.html#getInputStream--"><code>ServletRequest.getInputStream()</code></a></dd>
</dl>
</li>
</ul>
<a name="getRealPath-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRealPath</h4>
<pre>public&nbsp;java.lang.String&nbsp;getRealPath(java.lang.String&nbsp;s)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getRealPath-java.lang.String-">getRealPath</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - the path for which the real path is to be returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <i>real</i> path, or <tt>null</tt> if the
 translation cannot be performed.</dd>
</dl>
</li>
</ul>
<a name="getParameters--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameters</h4>
<pre>@Deprecated
public&nbsp;java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;getParameters()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#getParameters--">HttpRequest</a></code></span></div>
<div class="block">Gets all the form and URL query parameters</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#getParameters--">getParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>All the form and URL query parameters</dd>
</dl>
</li>
</ul>
<a name="getRemoteAddr--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemoteAddr</h4>
<pre>public&nbsp;java.lang.String&nbsp;getRemoteAddr()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getRemoteAddr--">ServletRequest</a></code></span></div>
<div class="block">Returns the Internet Protocol (IP) address of the client
 or last proxy that sent the request.
 For HTTP servlets, same as the value of the
 CGI variable <code>REMOTE_ADDR</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getRemoteAddr--">getRemoteAddr</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html#getRemoteAddr--">getRemoteAddr</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/openejb/server/httpd/HttpRequest.html" title="interface in org.apache.openejb.server.httpd">HttpRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing the
 IP address of the client that sent the request</dd>
</dl>
</li>
</ul>
<a name="getRemoteHost--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemoteHost</h4>
<pre>public&nbsp;java.lang.String&nbsp;getRemoteHost()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getRemoteHost--">ServletRequest</a></code></span></div>
<div class="block">Returns the fully qualified name of the client
 or the last proxy that sent the request.
 If the engine cannot or chooses not to resolve the hostname
 (to improve performance), this method returns the dotted-string form of
 the IP address. For HTTP servlets, same as the value of the CGI variable
 <code>REMOTE_HOST</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getRemoteHost--">getRemoteHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing the fully
 qualified name of the client</dd>
</dl>
</li>
</ul>
<a name="getRemotePort--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemotePort</h4>
<pre>public&nbsp;int&nbsp;getRemotePort()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getRemotePort--">ServletRequest</a></code></span></div>
<div class="block">Returns the Internet Protocol (IP) source port of the client
 or last proxy that sent the request.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getRemotePort--">getRemotePort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an integer specifying the port number</dd>
</dl>
</li>
</ul>
<a name="getRequestDispatcher-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRequestDispatcher</h4>
<pre>public&nbsp;<a href="../../../../../javax/servlet/RequestDispatcher.html" title="interface in javax.servlet">RequestDispatcher</a>&nbsp;getRequestDispatcher(java.lang.String&nbsp;s)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getRequestDispatcher-java.lang.String-">ServletRequest</a></code></span></div>
<div class="block">Returns a <a href="../../../../../javax/servlet/RequestDispatcher.html" title="interface in javax.servlet"><code>RequestDispatcher</code></a> object that acts as a wrapper for
 the resource located at the given path.
 A <code>RequestDispatcher</code> object can be used to forward
 a request to the resource or to include the resource in a response.
 The resource can be dynamic or static.

 <p>The pathname specified may be relative, although it cannot extend
 outside the current servlet context.  If the path begins with
 a "/" it is interpreted as relative to the current context root.
 This method returns <code>null</code> if the servlet container
 cannot return a <code>RequestDispatcher</code>.

 <p>The difference between this method and <a href="../../../../../javax/servlet/ServletContext.html#getRequestDispatcher-java.lang.String-"><code>ServletContext.getRequestDispatcher(java.lang.String)</code></a> is that this method can take a
 relative path.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getRequestDispatcher-java.lang.String-">getRequestDispatcher</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - a <code>String</code> specifying the pathname
 to the resource. If it is relative, it must be
 relative against the current servlet.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>RequestDispatcher</code> object that acts as a
 wrapper for the resource at the specified path,
 or <code>null</code> if the servlet container cannot
 return a <code>RequestDispatcher</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../javax/servlet/RequestDispatcher.html" title="interface in javax.servlet"><code>RequestDispatcher</code></a>, 
<a href="../../../../../javax/servlet/ServletContext.html#getRequestDispatcher-java.lang.String-"><code>ServletContext.getRequestDispatcher(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a name="getScheme--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getScheme</h4>
<pre>public&nbsp;java.lang.String&nbsp;getScheme()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getScheme--">ServletRequest</a></code></span></div>
<div class="block">Returns the name of the scheme used to make this request,
 for example,
 <code>http</code>, <code>https</code>, or <code>ftp</code>.
 Different schemes have different rules for constructing URLs,
 as noted in RFC 1738.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getScheme--">getScheme</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing the name
 of the scheme used to make this request</dd>
</dl>
</li>
</ul>
<a name="getServerName--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServerName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getServerName()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getServerName--">ServletRequest</a></code></span></div>
<div class="block">Returns the host name of the server to which the request was sent.
 It is the value of the part before ":" in the <code>Host</code>
 header value, if any, or the resolved server name, or the server IP
 address.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getServerName--">getServerName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing the name of the server</dd>
</dl>
</li>
</ul>
<a name="getServerPort--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServerPort</h4>
<pre>public&nbsp;int&nbsp;getServerPort()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getServerPort--">ServletRequest</a></code></span></div>
<div class="block">Returns the port number to which the request was sent.
 It is the value of the part after ":" in the <code>Host</code>
 header value, if any, or the server port where the client connection
 was accepted on.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getServerPort--">getServerPort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an integer specifying the port number</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 interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#getServletContext--">ServletRequest</a></code></span></div>
<div class="block">Gets the servlet context to which this ServletRequest was last
 dispatched.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#getServletContext--">getServletContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the servlet context to which this ServletRequest was last
 dispatched</dd>
</dl>
</li>
</ul>
<a name="isAsyncStarted--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAsyncStarted</h4>
<pre>public&nbsp;boolean&nbsp;isAsyncStarted()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#isAsyncStarted--">ServletRequest</a></code></span></div>
<div class="block">Checks if this request has been put into asynchronous mode.

 <p>A ServletRequest is put into asynchronous mode by calling
 <a href="../../../../../javax/servlet/ServletRequest.html#startAsync--"><code>ServletRequest.startAsync()</code></a> or
 <a href="../../../../../javax/servlet/ServletRequest.html#startAsync-javax.servlet.ServletRequest-javax.servlet.ServletResponse-"><code>ServletRequest.startAsync(ServletRequest,ServletResponse)</code></a> on it.

 <p>This method returns <tt>false</tt> if this request was
 put into asynchronous mode, but has since been dispatched using
 one of the <a href="../../../../../javax/servlet/AsyncContext.html#dispatch--"><code>AsyncContext.dispatch()</code></a> methods or released
 from asynchronous mode via a call to <a href="../../../../../javax/servlet/AsyncContext.html#complete--"><code>AsyncContext.complete()</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#isAsyncStarted--">isAsyncStarted</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this request has been put into asynchronous mode,
 false otherwise</dd>
</dl>
</li>
</ul>
<a name="isAsyncSupported--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAsyncSupported</h4>
<pre>public&nbsp;boolean&nbsp;isAsyncSupported()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#isAsyncSupported--">ServletRequest</a></code></span></div>
<div class="block">Checks if this request supports asynchronous operation.

 <p>Asynchronous operation is disabled for this request if this request
 is within the scope of a filter or servlet that has not been annotated
 or flagged in the deployment descriptor as being able to support
 asynchronous handling.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#isAsyncSupported--">isAsyncSupported</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this request supports asynchronous operation, false
 otherwise</dd>
</dl>
</li>
</ul>
<a name="isSecure--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSecure</h4>
<pre>public&nbsp;boolean&nbsp;isSecure()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#isSecure--">ServletRequest</a></code></span></div>
<div class="block">Returns a boolean indicating whether this request was made using a
 secure channel, such as HTTPS.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#isSecure--">isSecure</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a boolean indicating if the request was made using a
 secure channel</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;s)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html#removeAttribute-java.lang.String-">ServletRequest</a></code></span></div>
<div class="block">Removes an attribute from this request.  This method is not
 generally needed as attributes only persist as long as the request
 is being handled.

 <p>Attribute names should follow the same conventions as
 package names. Names beginning with <code>java.*</code>,
 <code>javax.*</code>, and <code>com.sun.*</code>, are
 reserved for use by Sun Microsystems.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../javax/servlet/ServletRequest.html#removeAttribute-java.lang.String-">removeAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - a <code>String</code> specifying
 the name of the attribute to remove</dd>
</dl>
</li>
</ul>
<a name="setPath-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPath</h4>
<pre>public&nbsp;void&nbsp;setPath(java.lang.String&nbsp;path)</pre>
</li>
</ul>
<a name="requestRawPath--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requestRawPath</h4>
<pre>public&nbsp;java.lang.String&nbsp;requestRawPath()</pre>
</li>
</ul>
<a name="initPathFromContext-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initPathFromContext</h4>
<pre>public&nbsp;void&nbsp;initPathFromContext(java.lang.String&nbsp;context)</pre>
</li>
</ul>
<a name="setEndListener-org.apache.openejb.server.httpd.EndWebBeansListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEndListener</h4>
<pre>public&nbsp;void&nbsp;setEndListener(<a href="../../../../../org/apache/openejb/server/httpd/EndWebBeansListener.html" title="class in org.apache.openejb.server.httpd">EndWebBeansListener</a>&nbsp;end)</pre>
</li>
</ul>
<a name="setApplication-org.apache.openejb.core.WebContext-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setApplication</h4>
<pre>public&nbsp;void&nbsp;setApplication(<a href="../../../../../org/apache/openejb/core/WebContext.html" title="class in org.apache.openejb.core">WebContext</a>&nbsp;app)</pre>
</li>
</ul>
<a name="setBeginListener-org.apache.openejb.server.httpd.BeginWebBeansListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBeginListener</h4>
<pre>public&nbsp;void&nbsp;setBeginListener(<a href="../../../../../org/apache/openejb/server/httpd/BeginWebBeansListener.html" title="class in org.apache.openejb.server.httpd">BeginWebBeansListener</a>&nbsp;begin)</pre>
</li>
</ul>
<a name="init--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>public&nbsp;void&nbsp;init()</pre>
</li>
</ul>
<a name="destroy--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>destroy</h4>
<pre>public&nbsp;void&nbsp;destroy()</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/openejb/server/httpd/HttpRequest.Method.html" title="enum in org.apache.openejb.server.httpd"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/openejb/server/httpd/HttpRequestImpl.SessionInvalidateListener.html" title="class in org.apache.openejb.server.httpd"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/openejb/server/httpd/HttpRequestImpl.html" target="_top">Frames</a></li>
<li><a href="HttpRequestImpl.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><a href="#nested.class.summary">Nested</a>&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>
