public class ContentCachingResponseWrapper extends HttpServletResponseWrapper
HttpServletResponse wrapper that caches all content written to
the output stream and writer,
and allows this content to be retrieved via a byte array.
Used e.g. by ShallowEtagHeaderFilter.
Note: As of Spring Framework 5.0, this wrapper is built on the Servlet 3.1 API.
ContentCachingRequestWrapperSC_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 |
|---|
ContentCachingResponseWrapper(HttpServletResponse response)
Create a new ContentCachingResponseWrapper for the given servlet response.
|
| Modifier and Type | Method and Description |
|---|---|
void |
copyBodyToResponse()
Copy the complete cached body content to the response.
|
protected void |
copyBodyToResponse(boolean complete)
Copy the cached body content to the response.
|
void |
flushBuffer()
The default behavior of this method is to call flushBuffer()
on the wrapped response object.
|
byte[] |
getContentAsByteArray()
Return the cached response content as a byte array.
|
InputStream |
getContentInputStream()
Return an
InputStream to the cached content. |
int |
getContentSize()
Return the current size of the cached content.
|
ServletOutputStream |
getOutputStream()
The default behavior of this method is to return getOutputStream()
on the wrapped response object.
|
int |
getStatusCode()
Return the status code as specified on the response.
|
PrintWriter |
getWriter()
The default behavior of this method is to return getWriter()
on the wrapped response object.
|
void |
reset()
The default behavior of this method is to call reset()
on the wrapped response object.
|
void |
resetBuffer()
The default behavior of this method is to call resetBuffer()
on the wrapped response object.
|
void |
sendError(int sc)
The default behavior of this method is to call sendError(int sc)
on the wrapped response object.
|
void |
sendError(int sc,
String msg)
The default behavior of this method is to call sendError(int sc, String msg)
on the wrapped response object.
|
void |
sendRedirect(String location)
The default behavior of this method is to return sendRedirect(String location)
on the wrapped response object.
|
void |
setBufferSize(int size)
The default behavior of this method is to call setBufferSize(int size)
on the wrapped response object.
|
void |
setContentLength(int len)
The default behavior of this method is to call setContentLength(int len)
on the wrapped response object.
|
void |
setContentLengthLong(long len)
The default behavior of this method is to call setContentLengthLong(long len)
on the wrapped response object.
|
void |
setStatus(int sc)
The default behavior of this method is to call setStatus(int sc)
on the wrapped response object.
|
void |
setStatus(int sc,
String sm)
The default behavior of this method is to call
setStatus(int sc, String sm) on the wrapped response object.
|
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, setDateHeader, setHeader, setIntHeader, setTrailerFieldsgetBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, setCharacterEncoding, setContentType, setLocale, setResponseclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, setCharacterEncoding, setContentType, setLocalepublic ContentCachingResponseWrapper(HttpServletResponse response)
response - the original servlet responsepublic void setStatus(int sc)
javax.servlet.http.HttpServletResponseWrappersetStatus in interface HttpServletResponsesetStatus in class HttpServletResponseWrappersc - the status codeHttpServletResponse.sendError(int, java.lang.String)public void setStatus(int sc,
String sm)
javax.servlet.http.HttpServletResponseWrappersetStatus in interface HttpServletResponsesetStatus in class HttpServletResponseWrappersc - the status codesm - the status messagepublic void sendError(int sc)
throws IOException
javax.servlet.http.HttpServletResponseWrappersendError in interface HttpServletResponsesendError in class HttpServletResponseWrappersc - the error status codeIOException - If an input or output exception occurspublic void sendError(int sc,
String msg)
throws IOException
javax.servlet.http.HttpServletResponseWrappersendError in interface HttpServletResponsesendError in class HttpServletResponseWrappersc - the error status codemsg - the descriptive messageIOException - If an input or output exception occurspublic void sendRedirect(String location) throws IOException
javax.servlet.http.HttpServletResponseWrappersendRedirect in interface HttpServletResponsesendRedirect in class HttpServletResponseWrapperlocation - the redirect location URLIOException - If an input or output exception occurspublic ServletOutputStream getOutputStream() throws IOException
javax.servlet.ServletResponseWrappergetOutputStream in interface ServletResponsegetOutputStream in class ServletResponseWrapperServletOutputStream for writing binary dataIOException - if an input or output exception occurredServletResponse.getWriter(),
ServletResponse.reset()public PrintWriter getWriter() throws IOException
javax.servlet.ServletResponseWrappergetWriter in interface ServletResponsegetWriter in class ServletResponseWrapperPrintWriter object that
can return character data to the clientUnsupportedEncodingException - if the character encoding returned
by getCharacterEncoding cannot be usedIOException - if an input or output exception occurredServletResponse.getOutputStream(),
ServletResponse.setCharacterEncoding(java.lang.String),
ServletResponse.reset()public void flushBuffer()
throws IOException
javax.servlet.ServletResponseWrapperflushBuffer in interface ServletResponseflushBuffer in class ServletResponseWrapperIOException - if the act of flushing the buffer cannot be
completed.ServletResponse.setBufferSize(int),
ServletResponse.getBufferSize(),
ServletResponse.isCommitted(),
ServletResponse.reset()public void setContentLength(int len)
javax.servlet.ServletResponseWrappersetContentLength in interface ServletResponsesetContentLength in class ServletResponseWrapperlen - an integer specifying the length of the
content being returned to the client; sets the Content-Length headerpublic void setContentLengthLong(long len)
javax.servlet.ServletResponseWrappersetContentLengthLong in interface ServletResponsesetContentLengthLong in class ServletResponseWrapperlen - a long specifying the length of the
content being returned to the client; sets the Content-Length headerpublic void setBufferSize(int size)
javax.servlet.ServletResponseWrappersetBufferSize in interface ServletResponsesetBufferSize in class ServletResponseWrappersize - the preferred buffer sizeServletResponse.getBufferSize(),
ServletResponse.flushBuffer(),
ServletResponse.isCommitted(),
ServletResponse.reset()public void resetBuffer()
javax.servlet.ServletResponseWrapperresetBuffer in interface ServletResponseresetBuffer in class ServletResponseWrapperServletResponse.setBufferSize(int),
ServletResponse.getBufferSize(),
ServletResponse.isCommitted(),
ServletResponse.reset()public void reset()
javax.servlet.ServletResponseWrapperreset in interface ServletResponsereset in class ServletResponseWrapperServletResponse.setBufferSize(int),
ServletResponse.getBufferSize(),
ServletResponse.flushBuffer(),
ServletResponse.isCommitted()public int getStatusCode()
public byte[] getContentAsByteArray()
public InputStream getContentInputStream()
InputStream to the cached content.public int getContentSize()
public void copyBodyToResponse()
throws IOException
IOExceptionprotected void copyBodyToResponse(boolean complete)
throws IOException
complete - whether to set a corresponding content length
for the complete cached body contentIOException