public class HttpServletResponseBuffer
extends javax.servlet.http.HttpServletResponseWrapper
HttpServletResponse
, allowing the output to be buffered. The passed
in Selector
, will be used to determine whether to actually do the buffering
for the request.
If the response is not buffered, all operations will be delegated back to the original response, unmodified.
If the response is buffered, the content written to getOutputStream()
and getWriter()
to an underlying buffer instead, available through
getBuffer()
. Additionally, the 'Content-Length' header will not be passed
through to the original response.
SC_ACCEPTED, SC_BAD_GATEWAY, SC_BAD_REQUEST, SC_CONFLICT, SC_CONTINUE, SC_CREATED, SC_EXPECTATION_FAILED, SC_FORBIDDEN, SC_FOUND, SC_GATEWAY_TIMEOUT, SC_GONE, SC_HTTP_VERSION_NOT_SUPPORTED, SC_INTERNAL_SERVER_ERROR, SC_LENGTH_REQUIRED, SC_METHOD_NOT_ALLOWED, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_MULTIPLE_CHOICES, SC_NO_CONTENT, SC_NON_AUTHORITATIVE_INFORMATION, SC_NOT_ACCEPTABLE, SC_NOT_FOUND, SC_NOT_IMPLEMENTED, SC_NOT_MODIFIED, SC_OK, SC_PARTIAL_CONTENT, SC_PAYMENT_REQUIRED, SC_PRECONDITION_FAILED, SC_PROXY_AUTHENTICATION_REQUIRED, SC_REQUEST_ENTITY_TOO_LARGE, SC_REQUEST_TIMEOUT, SC_REQUEST_URI_TOO_LONG, SC_REQUESTED_RANGE_NOT_SATISFIABLE, SC_RESET_CONTENT, SC_SEE_OTHER, SC_SERVICE_UNAVAILABLE, SC_SWITCHING_PROTOCOLS, SC_TEMPORARY_REDIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY
Constructor and Description |
---|
HttpServletResponseBuffer(javax.servlet.http.HttpServletResponse originalResponse,
ResponseMetaData metaData,
Selector selector) |
Modifier and Type | Method and Description |
---|---|
protected void |
abortBufferingIfBadStatusCode(int statusCode) |
void |
addDateHeader(String name,
long value) |
void |
addHeader(String name,
String value) |
void |
addIntHeader(String name,
int value) |
boolean |
bufferingWasDisabled() |
protected void |
disableBuffering()
Disable buffering for this request.
|
protected void |
enableBuffering(String encoding)
Enable buffering for this request.
|
void |
flushBuffer() |
CharBuffer |
getBuffer()
Returns the underlying buffered content.
|
javax.servlet.ServletOutputStream |
getOutputStream()
If buffering has been enabled for this request, it
will return a stream that writes to the buffer, otherwise it will return the
original stream.
|
PrintWriter |
getWriter()
If buffering has been enabled for this request, it
will return a writer that writes to the buffer, otherwise it will return the
original writer.
|
boolean |
isBufferStreamBased()
Whether the underlying buffer was written to using
getOutputStream()
(as opposed to getWriter() . |
protected void |
preCommit()
Hook that is called just before the response is committed.
|
void |
sendError(int statusCode) |
void |
sendError(int statusCode,
String reason) |
void |
sendRedirect(String location) |
void |
setContentLength(int contentLength) |
void |
setContentType(String type)
Enable/disable buffering for this request based on the result of
Selector.shouldBufferForContentType(String, String, String) . |
void |
setDateHeader(String name,
long value) |
void |
setHeader(String name,
String value) |
void |
setIntHeader(String name,
int value) |
void |
setStatus(int statusCode) |
void |
setStatus(int statusCode,
String reason) |
addCookie, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setLocale, setResponse
public HttpServletResponseBuffer(javax.servlet.http.HttpServletResponse originalResponse, ResponseMetaData metaData, Selector selector)
public javax.servlet.ServletOutputStream getOutputStream()
getOutputStream
in interface javax.servlet.ServletResponse
getOutputStream
in class javax.servlet.ServletResponseWrapper
public PrintWriter getWriter()
getWriter
in interface javax.servlet.ServletResponse
getWriter
in class javax.servlet.ServletResponseWrapper
public CharBuffer getBuffer() throws IOException
IOException
public boolean isBufferStreamBased()
getOutputStream()
(as opposed to getWriter()
. If buffering was not enabled, false will be returned.protected void enableBuffering(String encoding)
protected void disableBuffering()
public boolean bufferingWasDisabled()
protected void preCommit()
public void setContentType(String type)
Selector.shouldBufferForContentType(String, String, String)
.setContentType
in interface javax.servlet.ServletResponse
setContentType
in class javax.servlet.ServletResponseWrapper
public void setContentLength(int contentLength)
setContentLength
in interface javax.servlet.ServletResponse
setContentLength
in class javax.servlet.ServletResponseWrapper
public void flushBuffer() throws IOException
flushBuffer
in interface javax.servlet.ServletResponse
flushBuffer
in class javax.servlet.ServletResponseWrapper
IOException
public void setHeader(String name, String value)
setHeader
in interface javax.servlet.http.HttpServletResponse
setHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void addHeader(String name, String value)
addHeader
in interface javax.servlet.http.HttpServletResponse
addHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void setIntHeader(String name, int value)
setIntHeader
in interface javax.servlet.http.HttpServletResponse
setIntHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void addIntHeader(String name, int value)
addIntHeader
in interface javax.servlet.http.HttpServletResponse
addIntHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void setDateHeader(String name, long value)
setDateHeader
in interface javax.servlet.http.HttpServletResponse
setDateHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void addDateHeader(String name, long value)
addDateHeader
in interface javax.servlet.http.HttpServletResponse
addDateHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void setStatus(int statusCode)
setStatus
in interface javax.servlet.http.HttpServletResponse
setStatus
in class javax.servlet.http.HttpServletResponseWrapper
public void setStatus(int statusCode, String reason)
setStatus
in interface javax.servlet.http.HttpServletResponse
setStatus
in class javax.servlet.http.HttpServletResponseWrapper
public void sendError(int statusCode) throws IOException
sendError
in interface javax.servlet.http.HttpServletResponse
sendError
in class javax.servlet.http.HttpServletResponseWrapper
IOException
public void sendError(int statusCode, String reason) throws IOException
sendError
in interface javax.servlet.http.HttpServletResponse
sendError
in class javax.servlet.http.HttpServletResponseWrapper
IOException
public void sendRedirect(String location) throws IOException
sendRedirect
in interface javax.servlet.http.HttpServletResponse
sendRedirect
in class javax.servlet.http.HttpServletResponseWrapper
IOException
protected void abortBufferingIfBadStatusCode(int statusCode)
Copyright © 2015. All Rights Reserved.