<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>ServletResponse</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="ServletResponse";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":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/ServletRequestWrapper.html" title="class in jakarta.servlet"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/servlet/ServletResponseWrapper.html" title="class in jakarta.servlet"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/servlet/ServletResponse.html" target="_top">Frames</a></li>
<li><a href="ServletResponse.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 ServletResponse" class="title">Interface ServletResponse</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/http/HttpServletResponse.html" title="interface in jakarta.servlet.http">HttpServletResponse</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../jakarta/servlet/http/HttpServletResponseWrapper.html" title="class in jakarta.servlet.http">HttpServletResponseWrapper</a>, <a href="../../jakarta/servlet/ServletResponseWrapper.html" title="class in jakarta.servlet">ServletResponseWrapper</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">ServletResponse</span></pre>
<div class="block">Defines an object to assist a servlet in sending a response to the client. The servlet container creates a
 <code>ServletResponse</code> object and passes it as an argument to the servlet's <code>service</code> method.

 <p>
 To send binary data in a MIME body response, use the <a href="../../jakarta/servlet/ServletOutputStream.html" title="class in jakarta.servlet"><code>ServletOutputStream</code></a> returned by
 <a href="../../jakarta/servlet/ServletResponse.html#getOutputStream--"><code>getOutputStream()</code></a>. To send character data, use the <code>PrintWriter</code> object returned by
 <a href="../../jakarta/servlet/ServletResponse.html#getWriter--"><code>getWriter()</code></a>. To mix binary and text data, for example, to create a multipart response, use a
 <code>ServletOutputStream</code> and manage the character sections manually.

 <p>
 The charset for the MIME body response can be specified explicitly using any of the following techniques: per
 request, per web-app (using <a href="../../jakarta/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). If multiple of
 the preceding techniques have been employed, the priority is the order listed. For per request, the charset for the
 response can be specified explicitly using the <a href="../../jakarta/servlet/ServletResponse.html#setCharacterEncoding-java.lang.String-"><code>setCharacterEncoding(java.lang.String)</code></a> and <a href="../../jakarta/servlet/ServletResponse.html#setContentType-java.lang.String-"><code>setContentType(java.lang.String)</code></a> methods, or
 implicitly using the <a href="../../jakarta/servlet/ServletResponse.html#setLocale-java.util.Locale-"><code>setLocale(java.util.Locale)</code></a> method. Explicit specifications take precedence over implicit specifications.
 If no charset is explicitly specified, ISO-8859-1 will be used. The <code>setCharacterEncoding</code>,
 <code>setContentType</code>, or <code>setLocale</code> method must be called before <code>getWriter</code> and before
 committing the response for the character encoding to be used.
 
 <p>
 See the Internet RFCs such as <a href="http://www.ietf.org/rfc/rfc2045.txt"> RFC 2045</a> for more information on
 MIME. Protocols such as SMTP and HTTP define profiles of MIME, and those standards are still evolving.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletOutputStream.html" title="class in jakarta.servlet"><code>ServletOutputStream</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/ServletResponse.html#flushBuffer--">flushBuffer</a></span>()</code>
<div class="block">Forces any content in the buffer to be written to the client.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#getBufferSize--">getBufferSize</a></span>()</code>
<div class="block">Returns the actual buffer size used for the response.</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/ServletResponse.html#getCharacterEncoding--">getCharacterEncoding</a></span>()</code>
<div class="block">Returns the name of the character encoding (MIME charset) used for the body sent in this response.</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="../../jakarta/servlet/ServletResponse.html#getContentType--">getContentType</a></span>()</code>
<div class="block">Returns the content type used for the MIME body sent in this response.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.util.Locale</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#getLocale--">getLocale</a></span>()</code>
<div class="block">Returns the locale specified for this response using the <a href="../../jakarta/servlet/ServletResponse.html#setLocale-java.util.Locale-"><code>setLocale(java.util.Locale)</code></a> method.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/servlet/ServletOutputStream.html" title="class in jakarta.servlet">ServletOutputStream</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#getOutputStream--">getOutputStream</a></span>()</code>
<div class="block">Returns a <a href="../../jakarta/servlet/ServletOutputStream.html" title="class in jakarta.servlet"><code>ServletOutputStream</code></a> suitable for writing binary data in the response.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.io.PrintWriter</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#getWriter--">getWriter</a></span>()</code>
<div class="block">Returns a <code>PrintWriter</code> object that can send character text to the client.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#isCommitted--">isCommitted</a></span>()</code>
<div class="block">Returns a boolean indicating if the response has been committed.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#reset--">reset</a></span>()</code>
<div class="block">Clears any data that exists in the buffer as well as the status code, headers.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#resetBuffer--">resetBuffer</a></span>()</code>
<div class="block">Clears the content of the underlying buffer in the response without clearing headers or status code.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#setBufferSize-int-">setBufferSize</a></span>(int&nbsp;size)</code>
<div class="block">Sets the preferred buffer size for the body of the response.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#setCharacterEncoding-java.lang.String-">setCharacterEncoding</a></span>(java.lang.String&nbsp;charset)</code>
<div class="block">Sets the character encoding (MIME charset) of the response being sent to the client, for example, to UTF-8.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#setContentLength-int-">setContentLength</a></span>(int&nbsp;len)</code>
<div class="block">Sets the length of the content body in the response In HTTP servlets, this method sets the HTTP Content-Length
 header.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#setContentLengthLong-long-">setContentLengthLong</a></span>(long&nbsp;len)</code>
<div class="block">Sets the length of the content body in the response In HTTP servlets, this method sets the HTTP Content-Length
 header.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#setContentType-java.lang.String-">setContentType</a></span>(java.lang.String&nbsp;type)</code>
<div class="block">Sets the content type of the response being sent to the client, if the response has not been committed yet.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/servlet/ServletResponse.html#setLocale-java.util.Locale-">setLocale</a></span>(java.util.Locale&nbsp;loc)</code>
<div class="block">Sets the locale of the response, if the response has not been committed yet.</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="getCharacterEncoding--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCharacterEncoding</h4>
<pre>java.lang.String&nbsp;getCharacterEncoding()</pre>
<div class="block">Returns the name of the character encoding (MIME charset) used for the body sent in this response. The following
 methods for specifying the response character encoding are consulted, in decreasing order of priority: per request,
 perweb-app (using <a href="../../jakarta/servlet/ServletContext.html#setResponseCharacterEncoding-java.lang.String-"><code>ServletContext.setResponseCharacterEncoding(java.lang.String)</code></a>, deployment descriptor), and per container (for
 all web applications deployed in that container, using vendor specific configuration). The first one of these methods
 that yields a result is returned. Per-request, the charset for the response can be specified explicitly using the
 <a href="../../jakarta/servlet/ServletResponse.html#setCharacterEncoding-java.lang.String-"><code>setCharacterEncoding(java.lang.String)</code></a> and <a href="../../jakarta/servlet/ServletResponse.html#setContentType-java.lang.String-"><code>setContentType(java.lang.String)</code></a> methods, or implicitly using the
 setLocale(java.util.Locale) method. Explicit specifications take precedence over implicit specifications. Calls made
 to these methods after <code>getWriter</code> has been called or after the response has been committed have no effect
 on the character encoding. If no character encoding has been specified, <code>ISO-8859-1</code> is returned.
 <p>
 See RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt) for more information about character encoding and MIME.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> specifying the name of the character encoding, for example, <code>UTF-8</code></dd>
</dl>
</li>
</ul>
<a name="getContentType--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContentType</h4>
<pre>java.lang.String&nbsp;getContentType()</pre>
<div class="block">Returns the content type used for the MIME body sent in this response. The content type proper must have been
 specified using <a href="../../jakarta/servlet/ServletResponse.html#setContentType-java.lang.String-"><code>setContentType(java.lang.String)</code></a> before the response is committed. If no content type has been specified, this
 method returns null. If a content type has been specified, and a character encoding has been explicitly or implicitly
 specified as described in <a href="../../jakarta/servlet/ServletResponse.html#getCharacterEncoding--"><code>getCharacterEncoding()</code></a> or <a href="../../jakarta/servlet/ServletResponse.html#getWriter--"><code>getWriter()</code></a> has been called, the charset parameter
 is included in the string returned. If no character encoding has been specified, the charset parameter is omitted.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>String</code> specifying the content type, for example, <code>text/html; charset=UTF-8</code>, or
 null</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Servlet 2.4</dd>
</dl>
</li>
</ul>
<a name="getOutputStream--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOutputStream</h4>
<pre><a href="../../jakarta/servlet/ServletOutputStream.html" title="class in jakarta.servlet">ServletOutputStream</a>&nbsp;getOutputStream()
                             throws java.io.IOException</pre>
<div class="block">Returns a <a href="../../jakarta/servlet/ServletOutputStream.html" title="class in jakarta.servlet"><code>ServletOutputStream</code></a> suitable for writing binary data in the response. The servlet container does
 not encode the binary data.

 <p>
 Calling flush() on the ServletOutputStream commits the response.

 Either this method or <a href="../../jakarta/servlet/ServletResponse.html#getWriter--"><code>getWriter()</code></a> may be called to write the body, not both, except when <a href="../../jakarta/servlet/ServletResponse.html#reset--"><code>reset()</code></a> has
 been called.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <a href="../../jakarta/servlet/ServletOutputStream.html" title="class in jakarta.servlet"><code>ServletOutputStream</code></a> for writing binary data</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the <code>getWriter</code> method has been called on this response</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="../../jakarta/servlet/ServletResponse.html#getWriter--"><code>getWriter()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#reset--"><code>reset()</code></a></dd>
</dl>
</li>
</ul>
<a name="getWriter--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriter</h4>
<pre>java.io.PrintWriter&nbsp;getWriter()
                       throws java.io.IOException</pre>
<div class="block">Returns a <code>PrintWriter</code> object that can send character text to the client. The <code>PrintWriter</code>
 uses the character encoding returned by <a href="../../jakarta/servlet/ServletResponse.html#getCharacterEncoding--"><code>getCharacterEncoding()</code></a>. If the response's character encoding has not
 been specified as described in <code>getCharacterEncoding</code> (i.e., the method just returns the default value
 <code>ISO-8859-1</code>), <code>getWriter</code> updates it to <code>ISO-8859-1</code>.
 <p>
 Calling flush() on the <code>PrintWriter</code> commits the response.
 <p>
 Either this method or <a href="../../jakarta/servlet/ServletResponse.html#getOutputStream--"><code>getOutputStream()</code></a> may be called to write the body, not both, except when <a href="../../jakarta/servlet/ServletResponse.html#reset--"><code>reset()</code></a>
 has been called.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>PrintWriter</code> object that can return character data to the client</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.UnsupportedEncodingException</code> - if the character encoding returned by
 <code>getCharacterEncoding</code> cannot be used</dd>
<dd><code>java.lang.IllegalStateException</code> - if the <code>getOutputStream</code> method has already been called for this response
 object</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="../../jakarta/servlet/ServletResponse.html#getOutputStream--"><code>getOutputStream()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#setCharacterEncoding-java.lang.String-"><code>setCharacterEncoding(java.lang.String)</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#reset--"><code>reset()</code></a></dd>
</dl>
</li>
</ul>
<a name="setCharacterEncoding-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCharacterEncoding</h4>
<pre>void&nbsp;setCharacterEncoding(java.lang.String&nbsp;charset)</pre>
<div class="block">Sets the character encoding (MIME charset) of the response being sent to the client, for example, to UTF-8. If the
 response character encoding has already been set by the <a href="../../jakarta/servlet/ServletContext.html#setResponseCharacterEncoding-java.lang.String-"><code>ServletContext.setResponseCharacterEncoding(java.lang.String)</code></a>,
 deployment descriptor, or using the setContentType() or setLocale() methods, the value set in this method overrides
 any of those values. Calling <a href="../../jakarta/servlet/ServletResponse.html#setContentType-java.lang.String-"><code>setContentType(java.lang.String)</code></a> with the <code>String</code> of <code>text/html</code> and
 calling this method with the <code>String</code> of <code>UTF-8</code> is equivalent with calling
 <code>setContentType</code> with the <code>String</code> of <code>text/html; charset=UTF-8</code>.
 <p>
 This method can be called repeatedly to change the character encoding. This method has no effect if it is called
 after <code>getWriter</code> has been called or after the response has been committed.
 <p>
 Containers must communicate the character encoding used for the servlet response's writer to the client if the
 protocol provides a way for doing so. In the case of HTTP, the character encoding is communicated as part of the
 <code>Content-Type</code> header for text media types. Note that the character encoding cannot be communicated via
 HTTP headers if the servlet does not specify a content type; however, it is still used to encode text written via the
 servlet response's writer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>charset</code> - a String specifying only the character set defined by IANA Character Sets
 (http://www.iana.org/assignments/character-sets)</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Servlet 2.4</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletResponse.html#setContentType-java.lang.String-"><code>setContentType(java.lang.String)</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#setLocale-java.util.Locale-"><code>setLocale(java.util.Locale)</code></a></dd>
</dl>
</li>
</ul>
<a name="setContentLength-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setContentLength</h4>
<pre>void&nbsp;setContentLength(int&nbsp;len)</pre>
<div class="block">Sets the length of the content body in the response In HTTP servlets, this method sets the HTTP Content-Length
 header.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>len</code> - an integer specifying the length of the content being returned to the client; sets the Content-Length
 header</dd>
</dl>
</li>
</ul>
<a name="setContentLengthLong-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setContentLengthLong</h4>
<pre>void&nbsp;setContentLengthLong(long&nbsp;len)</pre>
<div class="block">Sets the length of the content body in the response In HTTP servlets, this method sets the HTTP Content-Length
 header.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>len</code> - a long specifying the length of the content being returned to the client; sets the Content-Length header</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Servlet 3.1</dd>
</dl>
</li>
</ul>
<a name="setContentType-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setContentType</h4>
<pre>void&nbsp;setContentType(java.lang.String&nbsp;type)</pre>
<div class="block">Sets the content type of the response being sent to the client, if the response has not been committed yet. The given
 content type may include a character encoding specification, for example, <code>text/html;charset=UTF-8</code>. The
 response's character encoding is only set from the given content type if this method is called before
 <code>getWriter</code> is called.
 <p>
 This method may be called repeatedly to change content type and character encoding. This method has no effect if
 called after the response has been committed. It does not set the response's character encoding if it is called after
 <code>getWriter</code> has been called or after the response has been committed.
 <p>
 Containers must communicate the content type and the character encoding used for the servlet response's writer to the
 client if the protocol provides a way for doing so. In the case of HTTP, the <code>Content-Type</code> header is
 used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - a <code>String</code> specifying the MIME type of the content</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletResponse.html#setLocale-java.util.Locale-"><code>setLocale(java.util.Locale)</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#setCharacterEncoding-java.lang.String-"><code>setCharacterEncoding(java.lang.String)</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#getOutputStream--"><code>getOutputStream()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#getWriter--"><code>getWriter()</code></a></dd>
</dl>
</li>
</ul>
<a name="setBufferSize-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBufferSize</h4>
<pre>void&nbsp;setBufferSize(int&nbsp;size)</pre>
<div class="block">Sets the preferred buffer size for the body of the response. The servlet container will use a buffer at least as
 large as the size requested. The actual buffer size used can be found using <code>getBufferSize</code>.

 <p>
 A larger buffer allows more content to be written before anything is actually sent, thus providing the servlet with
 more time to set appropriate status codes and headers. A smaller buffer decreases server memory load and allows the
 client to start receiving data more quickly.

 <p>
 This method must be called before any response body content is written; if content has been written or the response
 object has been committed, this method throws an <code>IllegalStateException</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>size</code> - the preferred buffer size</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if this method is called after content has been written</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletResponse.html#getBufferSize--"><code>getBufferSize()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#flushBuffer--"><code>flushBuffer()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#isCommitted--"><code>isCommitted()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#reset--"><code>reset()</code></a></dd>
</dl>
</li>
</ul>
<a name="getBufferSize--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBufferSize</h4>
<pre>int&nbsp;getBufferSize()</pre>
<div class="block">Returns the actual buffer size used for the response. If no buffering is used, this method returns 0.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the actual buffer size used</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletResponse.html#setBufferSize-int-"><code>setBufferSize(int)</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#flushBuffer--"><code>flushBuffer()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#isCommitted--"><code>isCommitted()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#reset--"><code>reset()</code></a></dd>
</dl>
</li>
</ul>
<a name="flushBuffer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flushBuffer</h4>
<pre>void&nbsp;flushBuffer()
          throws java.io.IOException</pre>
<div class="block">Forces any content in the buffer to be written to the client. A call to this method automatically commits the
 response, meaning the status code and headers will be written.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if the act of flushing the buffer cannot be completed.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletResponse.html#setBufferSize-int-"><code>setBufferSize(int)</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#getBufferSize--"><code>getBufferSize()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#isCommitted--"><code>isCommitted()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#reset--"><code>reset()</code></a></dd>
</dl>
</li>
</ul>
<a name="resetBuffer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetBuffer</h4>
<pre>void&nbsp;resetBuffer()</pre>
<div class="block">Clears the content of the underlying buffer in the response without clearing headers or status code. If the response
 has been committed, this method throws an <code>IllegalStateException</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Servlet 2.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletResponse.html#setBufferSize-int-"><code>setBufferSize(int)</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#getBufferSize--"><code>getBufferSize()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#isCommitted--"><code>isCommitted()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#reset--"><code>reset()</code></a></dd>
</dl>
</li>
</ul>
<a name="isCommitted--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCommitted</h4>
<pre>boolean&nbsp;isCommitted()</pre>
<div class="block">Returns a boolean indicating if the response has been committed. A committed response has already had its status code
 and headers written.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a boolean indicating if the response has been committed</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletResponse.html#setBufferSize-int-"><code>setBufferSize(int)</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#getBufferSize--"><code>getBufferSize()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#flushBuffer--"><code>flushBuffer()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#reset--"><code>reset()</code></a></dd>
</dl>
</li>
</ul>
<a name="reset--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reset</h4>
<pre>void&nbsp;reset()</pre>
<div class="block">Clears any data that exists in the buffer as well as the status code, headers. The state of calling
 <a href="../../jakarta/servlet/ServletResponse.html#getWriter--"><code>getWriter()</code></a> or <a href="../../jakarta/servlet/ServletResponse.html#getOutputStream--"><code>getOutputStream()</code></a> is also cleared. It is legal, for instance, to call
 <a href="../../jakarta/servlet/ServletResponse.html#getWriter--"><code>getWriter()</code></a>, <a href="../../jakarta/servlet/ServletResponse.html#reset--"><code>reset()</code></a> and then <a href="../../jakarta/servlet/ServletResponse.html#getOutputStream--"><code>getOutputStream()</code></a>. If <a href="../../jakarta/servlet/ServletResponse.html#getWriter--"><code>getWriter()</code></a> or
 <a href="../../jakarta/servlet/ServletResponse.html#getOutputStream--"><code>getOutputStream()</code></a> have been called before this method, then the corrresponding returned Writer or OutputStream
 will be staled and the behavior of using the stale object is undefined. If the response has been committed, this
 method throws an <code>IllegalStateException</code>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the response has already been committed</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletResponse.html#setBufferSize-int-"><code>setBufferSize(int)</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#getBufferSize--"><code>getBufferSize()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#flushBuffer--"><code>flushBuffer()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#isCommitted--"><code>isCommitted()</code></a></dd>
</dl>
</li>
</ul>
<a name="setLocale-java.util.Locale-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLocale</h4>
<pre>void&nbsp;setLocale(java.util.Locale&nbsp;loc)</pre>
<div class="block">Sets the locale of the response, if the response has not been committed yet. It also sets the response's character
 encoding appropriately for the locale, if the character encoding has not been explicitly set using
 <a href="../../jakarta/servlet/ServletResponse.html#setContentType-java.lang.String-"><code>setContentType(java.lang.String)</code></a> or <a href="../../jakarta/servlet/ServletResponse.html#setCharacterEncoding-java.lang.String-"><code>setCharacterEncoding(java.lang.String)</code></a>, <code>getWriter</code> hasn't been called yet, and the
 response hasn't been committed yet. If the deployment descriptor contains a <code>locale-encoding-mapping-list</code>
 element, and that element provides a mapping for the given locale, that mapping is used. Otherwise, the mapping from
 locale to character encoding is container dependent.
 <p>
 This method may be called repeatedly to change locale and character encoding. The method has no effect if called
 after the response has been committed. It does not set the response's character encoding if it is called after
 <a href="../../jakarta/servlet/ServletResponse.html#setContentType-java.lang.String-"><code>setContentType(java.lang.String)</code></a> has been called with a charset specification, after <a href="../../jakarta/servlet/ServletResponse.html#setCharacterEncoding-java.lang.String-"><code>setCharacterEncoding(java.lang.String)</code></a> has been
 called, after <code>getWriter</code> has been called, or after the response has been committed.
 <p>
 Containers must communicate the locale and the character encoding used for the servlet response's writer to the
 client if the protocol provides a way for doing so. In the case of HTTP, the locale is communicated via the
 <code>Content-Language</code> header, the character encoding as part of the <code>Content-Type</code> header for text
 media types. Note that the character encoding cannot be communicated via HTTP headers if the servlet does not specify
 a content type; however, it is still used to encode text written via the servlet response's writer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>loc</code> - the locale of the response</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletResponse.html#getLocale--"><code>getLocale()</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#setContentType-java.lang.String-"><code>setContentType(java.lang.String)</code></a>, 
<a href="../../jakarta/servlet/ServletResponse.html#setCharacterEncoding-java.lang.String-"><code>setCharacterEncoding(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a name="getLocale--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getLocale</h4>
<pre>java.util.Locale&nbsp;getLocale()</pre>
<div class="block">Returns the locale specified for this response using the <a href="../../jakarta/servlet/ServletResponse.html#setLocale-java.util.Locale-"><code>setLocale(java.util.Locale)</code></a> method. Calls made to
 <code>setLocale</code> after the response is committed have no effect. If no locale has been specified, the
 container's default locale is returned.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Locale for this response.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/servlet/ServletResponse.html#setLocale-java.util.Locale-"><code>setLocale(java.util.Locale)</code></a></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="../../jakarta/servlet/ServletRequestWrapper.html" title="class in jakarta.servlet"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/servlet/ServletResponseWrapper.html" title="class in jakarta.servlet"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/servlet/ServletResponse.html" target="_top">Frames</a></li>
<li><a href="ServletResponse.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>
