blob: 9103ee92def7e8f4977458994af624c96300197f [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>Servlet</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="Servlet";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/RequestDispatcher.html" title="interface in javax.servlet"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../javax/servlet/ServletConfig.html" title="interface in javax.servlet"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?javax/servlet/Servlet.html" target="_top">Frames</a></li>
<li><a href="Servlet.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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">javax.servlet</div>
<h2 title="Interface Servlet" class="title">Interface Servlet</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../javax/servlet/jsp/HttpJspPage.html" title="interface in javax.servlet.jsp">HttpJspPage</a>, <a href="../../javax/servlet/jsp/JspPage.html" title="interface in javax.servlet.jsp">JspPage</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../javax/servlet/GenericServlet.html" title="class in javax.servlet">GenericServlet</a>, <a href="../../javax/servlet/http/HttpServlet.html" title="class in javax.servlet.http">HttpServlet</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">Servlet</span></pre>
<div class="block">Defines methods that all servlets must implement.
<p>A servlet is a small Java program that runs within a Web server.
Servlets receive and respond to requests from Web clients,
usually across HTTP, the HyperText Transfer Protocol.
<p>To implement this interface, you can write a generic servlet
that extends
<code>javax.servlet.GenericServlet</code> or an HTTP servlet that
extends <code>javax.servlet.http.HttpServlet</code>.
<p>This interface defines methods to initialize a servlet,
to service requests, and to remove a servlet from the server.
These are known as life-cycle methods and are called in the
following sequence:
<ol>
<li>The servlet is constructed, then initialized with the <code>init</code> method.
<li>Any calls from clients to the <code>service</code> method are handled.
<li>The servlet is taken out of service, then destroyed with the
<code>destroy</code> method, then garbage collected and finalized.
</ol>
<p>In addition to the life-cycle methods, this interface
provides the <code>getServletConfig</code> method, which the servlet
can use to get any startup information, and the <code>getServletInfo</code>
method, which allows the servlet to return basic information about itself,
such as author, version, and copyright.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../javax/servlet/GenericServlet.html" title="class in javax.servlet"><code>GenericServlet</code></a>,
<a href="../../javax/servlet/http/HttpServlet.html" title="class in javax.servlet.http"><code>HttpServlet</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></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="../../javax/servlet/Servlet.html#destroy--">destroy</a></span>()</code>
<div class="block">Called by the servlet container to indicate to a servlet that the
servlet is being taken out of service.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../javax/servlet/ServletConfig.html" title="interface in javax.servlet">ServletConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/servlet/Servlet.html#getServletConfig--">getServletConfig</a></span>()</code>
<div class="block">Returns a <a href="../../javax/servlet/ServletConfig.html" title="interface in javax.servlet"><code>ServletConfig</code></a> object, which contains
initialization and startup parameters for this servlet.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/servlet/Servlet.html#getServletInfo--">getServletInfo</a></span>()</code>
<div class="block">Returns information about the servlet, such
as author, version, and copyright.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/servlet/Servlet.html#init-javax.servlet.ServletConfig-">init</a></span>(<a href="../../javax/servlet/ServletConfig.html" title="interface in javax.servlet">ServletConfig</a>&nbsp;config)</code>
<div class="block">Called by the servlet container to indicate to a servlet that the
servlet is being placed into service.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/servlet/Servlet.html#service-javax.servlet.ServletRequest-javax.servlet.ServletResponse-">service</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)</code>
<div class="block">Called by the servlet container to allow the servlet to respond to
a request.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="init-javax.servlet.ServletConfig-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>void&nbsp;init(<a href="../../javax/servlet/ServletConfig.html" title="interface in javax.servlet">ServletConfig</a>&nbsp;config)
throws <a href="../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></pre>
<div class="block">Called by the servlet container to indicate to a servlet that the
servlet is being placed into service.
<p>The servlet container calls the <code>init</code>
method exactly once after instantiating the servlet.
The <code>init</code> method must complete successfully
before the servlet can receive any requests.
<p>The servlet container cannot place the servlet into service
if the <code>init</code> method
<ol>
<li>Throws a <code>ServletException</code>
<li>Does not return within a time period defined by the Web server
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - a <code>ServletConfig</code> object
containing the servlet's
configuration and initialization parameters</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 an exception has occurred that
interferes with the servlet's normal
operation</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>,
<a href="../../javax/servlet/Servlet.html#getServletConfig--"><code>getServletConfig()</code></a></dd>
</dl>
</li>
</ul>
<a name="getServletConfig--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServletConfig</h4>
<pre><a href="../../javax/servlet/ServletConfig.html" title="interface in javax.servlet">ServletConfig</a>&nbsp;getServletConfig()</pre>
<div class="block">Returns a <a href="../../javax/servlet/ServletConfig.html" title="interface in javax.servlet"><code>ServletConfig</code></a> object, which contains
initialization and startup parameters for this servlet.
The <code>ServletConfig</code> object returned is the one
passed to the <code>init</code> method.
<p>Implementations of this interface are responsible for storing the
<code>ServletConfig</code> object so that this
method can return it. The <a href="../../javax/servlet/GenericServlet.html" title="class in javax.servlet"><code>GenericServlet</code></a>
class, which implements this interface, already does this.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>ServletConfig</code> object
that initializes this servlet</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../javax/servlet/Servlet.html#init-javax.servlet.ServletConfig-"><code>init(javax.servlet.ServletConfig)</code></a></dd>
</dl>
</li>
</ul>
<a name="service-javax.servlet.ServletRequest-javax.servlet.ServletResponse-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>service</h4>
<pre>void&nbsp;service(<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)
throws <a href="../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a>,
java.io.IOException</pre>
<div class="block">Called by the servlet container to allow the servlet to respond to
a request.
<p>This method is only called after the servlet's <code>init()</code>
method has completed successfully.
<p> The status code of the response always should be set for a servlet
that throws or sends an error.
<p>Servlets typically run inside multithreaded servlet containers
that can handle multiple requests concurrently. Developers must
be aware to synchronize access to any shared resources such as files,
network connections, and as well as the servlet's class and instance
variables.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>req</code> - the <code>ServletRequest</code> object that contains
the client's request</dd>
<dd><code>res</code> - the <code>ServletResponse</code> object that contains
the servlet's response</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 an exception occurs that interferes
with the servlet's normal operation</dd>
<dd><code>java.io.IOException</code> - if an input or output exception occurs</dd>
</dl>
</li>
</ul>
<a name="getServletInfo--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServletInfo</h4>
<pre>java.lang.String&nbsp;getServletInfo()</pre>
<div class="block">Returns information about the servlet, such
as author, version, and copyright.
<p>The string that this method returns should
be plain text and not markup of any kind (such as HTML, XML,
etc.).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> containing servlet information</dd>
</dl>
</li>
</ul>
<a name="destroy--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>destroy</h4>
<pre>void&nbsp;destroy()</pre>
<div class="block">Called by the servlet container to indicate to a servlet that the
servlet is being taken out of service. This method is
only called once all threads within the servlet's
<code>service</code> method have exited or after a timeout
period has passed. After the servlet container calls this
method, it will not call the <code>service</code> method again
on this servlet.
<p>This method gives the servlet an opportunity
to clean up any resources that are being held (for example, memory,
file handles, threads) and make sure that any persistent state is
synchronized with the servlet's current state in memory.</div>
</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/RequestDispatcher.html" title="interface in javax.servlet"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../javax/servlet/ServletConfig.html" title="interface in javax.servlet"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?javax/servlet/Servlet.html" target="_top">Frames</a></li>
<li><a href="Servlet.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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>