blob: 232f87c21edde5ba077b7d3d6f4201c4aa988615 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>HttpFilter</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="HttpFilter";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../javax/servlet/http/Cookie.html" title="class in javax.servlet.http"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../javax/servlet/http/HttpServlet.html" title="class in javax.servlet.http"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?javax/servlet/http/HttpFilter.html" target="_top">Frames</a></li>
<li><a href="HttpFilter.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&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">javax.servlet.http</div>
<h2 title="Class HttpFilter" class="title">Class HttpFilter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../javax/servlet/GenericFilter.html" title="class in javax.servlet">javax.servlet.GenericFilter</a></li>
<li>
<ul class="inheritance">
<li>javax.servlet.http.HttpFilter</li>
</ul>
</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/Filter.html" title="interface in javax.servlet">Filter</a>, <a href="../../../javax/servlet/FilterConfig.html" title="interface in javax.servlet">FilterConfig</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">HttpFilter</span>
extends <a href="../../../javax/servlet/GenericFilter.html" title="class in javax.servlet">GenericFilter</a></pre>
<div class="block"><p>Provides an abstract class to be subclassed to create
an HTTP filter suitable for a Web site. A subclass of
<code>HttpFilter</code> should override <a href="../../../javax/servlet/http/HttpFilter.html#doFilter-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-javax.servlet.FilterChain-"><code>doFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain)</code></a>.</p>
<p>Filters typically run on multithreaded servers,
so be aware that a filter must handle concurrent
requests and be careful to synchronize access to shared resources.
Shared resources include in-memory data such as
instance or class variables and external objects
such as files, database connections, and network
connections.
See the
<a href="https://docs.oracle.com/javase/tutorial/essential/concurrency/">
Java Tutorial on Multithreaded Programming</a> for more
information on handling multiple threads in a Java program.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Servlet 4.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../serialized-form.html#javax.servlet.http.HttpFilter">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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="../../../javax/servlet/http/HttpFilter.html#HttpFilter--">HttpFilter</a></span>()</code>
<div class="block">Does nothing, because this is an abstract class.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/servlet/http/HttpFilter.html#doFilter-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-javax.servlet.FilterChain-">doFilter</a></span>(<a href="../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a>&nbsp;req,
<a href="../../../javax/servlet/http/HttpServletResponse.html" title="interface in javax.servlet.http">HttpServletResponse</a>&nbsp;res,
<a href="../../../javax/servlet/FilterChain.html" title="interface in javax.servlet">FilterChain</a>&nbsp;chain)</code>
<div class="block">The <code>doFilter</code> method of the Filter is called by the
container each time a request/response pair is passed through the
chain due to a client request for a resource at the end of the chain.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/servlet/http/HttpFilter.html#doFilter-javax.servlet.ServletRequest-javax.servlet.ServletResponse-javax.servlet.FilterChain-">doFilter</a></span>(<a href="../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a>&nbsp;req,
<a href="../../../javax/servlet/ServletResponse.html" title="interface in javax.servlet">ServletResponse</a>&nbsp;res,
<a href="../../../javax/servlet/FilterChain.html" title="interface in javax.servlet">FilterChain</a>&nbsp;chain)</code>
<div class="block">The <code>doFilter</code> method of the Filter is called by the
container each time a request/response pair is passed through the
chain due to a client request for a resource at the end of the chain.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.GenericFilter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;javax.servlet.<a href="../../../javax/servlet/GenericFilter.html" title="class in javax.servlet">GenericFilter</a></h3>
<code><a href="../../../javax/servlet/GenericFilter.html#getFilterConfig--">getFilterConfig</a>, <a href="../../../javax/servlet/GenericFilter.html#getFilterName--">getFilterName</a>, <a href="../../../javax/servlet/GenericFilter.html#getInitParameter-java.lang.String-">getInitParameter</a>, <a href="../../../javax/servlet/GenericFilter.html#getInitParameterNames--">getInitParameterNames</a>, <a href="../../../javax/servlet/GenericFilter.html#getServletContext--">getServletContext</a>, <a href="../../../javax/servlet/GenericFilter.html#init--">init</a>, <a href="../../../javax/servlet/GenericFilter.html#init-javax.servlet.FilterConfig-">init</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.Filter">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;javax.servlet.<a href="../../../javax/servlet/Filter.html" title="interface in javax.servlet">Filter</a></h3>
<code><a href="../../../javax/servlet/Filter.html#destroy--">destroy</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="HttpFilter--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>HttpFilter</h4>
<pre>public&nbsp;HttpFilter()</pre>
<div class="block"><p>Does nothing, because this is an abstract class.</p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.0</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="doFilter-javax.servlet.ServletRequest-javax.servlet.ServletResponse-javax.servlet.FilterChain-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doFilter</h4>
<pre>public&nbsp;void&nbsp;doFilter(<a href="../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet">ServletRequest</a>&nbsp;req,
<a href="../../../javax/servlet/ServletResponse.html" title="interface in javax.servlet">ServletResponse</a>&nbsp;res,
<a href="../../../javax/servlet/FilterChain.html" title="interface in javax.servlet">FilterChain</a>&nbsp;chain)
throws java.io.IOException,
<a href="../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></pre>
<div class="block"><p>The <code>doFilter</code> method of the Filter is called by the
container each time a request/response pair is passed through the
chain due to a client request for a resource at the end of the chain.
The FilterChain passed in to this method allows the Filter to pass
on the request and response to the next entity in the chain. There's no need to
override this method.</p>
<p>The default implementation inspects the incoming <code>req</code> and <code>res</code>
objects to determine if they are instances of <a href="../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http"><code>HttpServletRequest</code></a>
and <a href="../../../javax/servlet/http/HttpServletResponse.html" title="interface in javax.servlet.http"><code>HttpServletResponse</code></a>, respectively. If not, a <a href="../../../javax/servlet/ServletException.html" title="class in javax.servlet"><code>ServletException</code></a> is thrown.
Otherwise, the protected <a href="../../../javax/servlet/http/HttpFilter.html#doFilter-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-javax.servlet.FilterChain-"><code>doFilter(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain)</code></a>
method is called.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>req</code> - a <a href="../../../javax/servlet/ServletRequest.html" title="interface in javax.servlet"><code>ServletRequest</code></a> object that
contains the request the client has made
of the filter</dd>
<dd><code>res</code> - a <a href="../../../javax/servlet/ServletResponse.html" title="interface in javax.servlet"><code>ServletResponse</code></a> object that
contains the response the filter sends
to the client</dd>
<dd><code>chain</code> - the <code>FilterChain</code> for invoking the next filter or the resource</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an input or output error is
detected when the filter handles
the request</dd>
<dd><code><a href="../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></code> - if the request for the could not be handled or
either parameter is not an instance of the respective <a href="../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http"><code>HttpServletRequest</code></a>
or <a href="../../../javax/servlet/http/HttpServletResponse.html" title="interface in javax.servlet.http"><code>HttpServletResponse</code></a>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Servlet 4.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../javax/servlet/UnavailableException.html" title="class in javax.servlet"><code>UnavailableException</code></a></dd>
</dl>
</li>
</ul>
<a name="doFilter-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-javax.servlet.FilterChain-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>doFilter</h4>
<pre>protected&nbsp;void&nbsp;doFilter(<a href="../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http">HttpServletRequest</a>&nbsp;req,
<a href="../../../javax/servlet/http/HttpServletResponse.html" title="interface in javax.servlet.http">HttpServletResponse</a>&nbsp;res,
<a href="../../../javax/servlet/FilterChain.html" title="interface in javax.servlet">FilterChain</a>&nbsp;chain)
throws java.io.IOException,
<a href="../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></pre>
<div class="block"><p>The <code>doFilter</code> method of the Filter is called by the
container each time a request/response pair is passed through the
chain due to a client request for a resource at the end of the chain.
The FilterChain passed in to this method allows the Filter to pass
on the request and response to the next entity in the chain.</p>
<p>The default implementation simply calls <a href="../../../javax/servlet/FilterChain.html#doFilter-javax.servlet.ServletRequest-javax.servlet.ServletResponse-"><code>FilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)</code></a></p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>req</code> - a <a href="../../../javax/servlet/http/HttpServletRequest.html" title="interface in javax.servlet.http"><code>HttpServletRequest</code></a> object that
contains the request the client has made
of the filter</dd>
<dd><code>res</code> - a <a href="../../../javax/servlet/http/HttpServletResponse.html" title="interface in javax.servlet.http"><code>HttpServletResponse</code></a> object that
contains the response the filter sends
to the client</dd>
<dd><code>chain</code> - the <code>FilterChain</code> for invoking the next filter or the resource</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an input or output error is
detected when the filter handles
the request</dd>
<dd><code><a href="../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></code> - if the request for the could not be handled</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Servlet 4.0</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../javax/servlet/http/Cookie.html" title="class in javax.servlet.http"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../javax/servlet/http/HttpServlet.html" title="class in javax.servlet.http"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?javax/servlet/http/HttpFilter.html" target="_top">Frames</a></li>
<li><a href="HttpFilter.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&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>