blob: 25acc651b1e1924b5e4021b69c053273c491dc96 [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="../../jakarta/servlet/RequestDispatcher.html" title="interface in jakarta.servlet"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/servlet/ServletConfig.html" title="interface in jakarta.servlet"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/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">jakarta.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="../../jakarta/servlet/jsp/HttpJspPage.html" title="interface in jakarta.servlet.jsp">HttpJspPage</a>, <a href="../../jakarta/servlet/jsp/JspPage.html" title="interface in jakarta.servlet.jsp">JspPage</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../jakarta/servlet/GenericServlet.html" title="class in jakarta.servlet">GenericServlet</a>, <a href="../../jakarta/servlet/http/HttpServlet.html" title="class in jakarta.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>jakarta.servlet.GenericServlet</code>
or an HTTP servlet that extends <code>jakarta.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="../../jakarta/servlet/GenericServlet.html" title="class in jakarta.servlet"><code>GenericServlet</code></a>,
<a href="../../jakarta/servlet/http/HttpServlet.html" title="class in jakarta.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="../../jakarta/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="../../jakarta/servlet/ServletConfig.html" title="interface in jakarta.servlet">ServletConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/Servlet.html#getServletConfig--">getServletConfig</a></span>()</code>
<div class="block">Returns a <a href="../../jakarta/servlet/ServletConfig.html" title="interface in jakarta.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="../../jakarta/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="../../jakarta/servlet/Servlet.html#init-jakarta.servlet.ServletConfig-">init</a></span>(<a href="../../jakarta/servlet/ServletConfig.html" title="interface in jakarta.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="../../jakarta/servlet/Servlet.html#service-jakarta.servlet.ServletRequest-jakarta.servlet.ServletResponse-">service</a></span>(<a href="../../jakarta/servlet/ServletRequest.html" title="interface in jakarta.servlet">ServletRequest</a>&nbsp;req,
<a href="../../jakarta/servlet/ServletResponse.html" title="interface in jakarta.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-jakarta.servlet.ServletConfig-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>void&nbsp;init(<a href="../../jakarta/servlet/ServletConfig.html" title="interface in jakarta.servlet">ServletConfig</a>&nbsp;config)
throws <a href="../../jakarta/servlet/ServletException.html" title="class in jakarta.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="../../jakarta/servlet/ServletException.html" title="class in jakarta.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="../../jakarta/servlet/UnavailableException.html" title="class in jakarta.servlet"><code>UnavailableException</code></a>,
<a href="../../jakarta/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="../../jakarta/servlet/ServletConfig.html" title="interface in jakarta.servlet">ServletConfig</a>&nbsp;getServletConfig()</pre>
<div class="block">Returns a <a href="../../jakarta/servlet/ServletConfig.html" title="interface in jakarta.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="../../jakarta/servlet/GenericServlet.html" title="class in jakarta.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="../../jakarta/servlet/Servlet.html#init-jakarta.servlet.ServletConfig-"><code>init(jakarta.servlet.ServletConfig)</code></a></dd>
</dl>
</li>
</ul>
<a name="service-jakarta.servlet.ServletRequest-jakarta.servlet.ServletResponse-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>service</h4>
<pre>void&nbsp;service(<a href="../../jakarta/servlet/ServletRequest.html" title="interface in jakarta.servlet">ServletRequest</a>&nbsp;req,
<a href="../../jakarta/servlet/ServletResponse.html" title="interface in jakarta.servlet">ServletResponse</a>&nbsp;res)
throws <a href="../../jakarta/servlet/ServletException.html" title="class in jakarta.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="../../jakarta/servlet/ServletException.html" title="class in jakarta.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="../../jakarta/servlet/RequestDispatcher.html" title="interface in jakarta.servlet"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/servlet/ServletConfig.html" title="interface in jakarta.servlet"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/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>