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.
ContentCachingRequestWrapper
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 |
---|
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() |
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() |
int |
getStatusCode()
Deprecated.
as of 5.2 in favor of
HttpServletResponse.getStatus() |
PrintWriter |
getWriter() |
void |
reset() |
void |
resetBuffer() |
void |
sendError(int sc) |
void |
sendError(int sc,
String msg) |
void |
sendRedirect(String location) |
void |
setBufferSize(int size) |
void |
setContentLength(int len) |
void |
setContentLengthLong(long len) |
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, setDateHeader, setHeader, setIntHeader, setStatus, setStatus
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, setCharacterEncoding, setContentType, setLocale, setResponse
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, setCharacterEncoding, setContentType, setLocale
public ContentCachingResponseWrapper(HttpServletResponse response)
response
- the original servlet responsepublic void sendError(int sc) throws IOException
sendError
in interface HttpServletResponse
sendError
in class HttpServletResponseWrapper
IOException
public void sendError(int sc, String msg) throws IOException
sendError
in interface HttpServletResponse
sendError
in class HttpServletResponseWrapper
IOException
public void sendRedirect(String location) throws IOException
sendRedirect
in interface HttpServletResponse
sendRedirect
in class HttpServletResponseWrapper
IOException
public ServletOutputStream getOutputStream() throws IOException
getOutputStream
in interface ServletResponse
getOutputStream
in class ServletResponseWrapper
IOException
public PrintWriter getWriter() throws IOException
getWriter
in interface ServletResponse
getWriter
in class ServletResponseWrapper
IOException
public void flushBuffer() throws IOException
flushBuffer
in interface ServletResponse
flushBuffer
in class ServletResponseWrapper
IOException
public void setContentLength(int len)
setContentLength
in interface ServletResponse
setContentLength
in class ServletResponseWrapper
public void setContentLengthLong(long len)
setContentLengthLong
in interface ServletResponse
setContentLengthLong
in class ServletResponseWrapper
public void setBufferSize(int size)
setBufferSize
in interface ServletResponse
setBufferSize
in class ServletResponseWrapper
public void resetBuffer()
resetBuffer
in interface ServletResponse
resetBuffer
in class ServletResponseWrapper
public void reset()
reset
in interface ServletResponse
reset
in class ServletResponseWrapper
@Deprecated public int getStatusCode()
HttpServletResponse.getStatus()
public byte[] getContentAsByteArray()
public InputStream getContentInputStream()
InputStream
to the cached content.public int getContentSize()
public void copyBodyToResponse() throws IOException
IOException
protected void copyBodyToResponse(boolean complete) throws IOException
complete
- whether to set a corresponding content length
for the complete cached body contentIOException