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 |
addHeader(String name,
String value) |
void |
addIntHeader(String name,
int value) |
boolean |
containsHeader(String name) |
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()
This method neither flushes content to the client nor commits the underlying
response, since the content has not yet been copied to the response.
|
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.
|
String |
getHeader(String name) |
Collection<String> |
getHeaderNames() |
Collection<String> |
getHeaders(String name) |
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) |
void |
setHeader(String name,
String value) |
void |
setIntHeader(String name,
int value) |
addCookie, addDateHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getStatus, getTrailerFields, setDateHeader, setStatus, setStatus, 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 sendError(int sc)
throws IOException
sendError in interface HttpServletResponsesendError in class HttpServletResponseWrapperIOExceptionpublic void sendError(int sc,
String msg)
throws IOException
sendError in interface HttpServletResponsesendError in class HttpServletResponseWrapperIOExceptionpublic void sendRedirect(String location) throws IOException
sendRedirect in interface HttpServletResponsesendRedirect in class HttpServletResponseWrapperIOExceptionpublic ServletOutputStream getOutputStream() throws IOException
getOutputStream in interface ServletResponsegetOutputStream in class ServletResponseWrapperIOExceptionpublic PrintWriter getWriter() throws IOException
getWriter in interface ServletResponsegetWriter in class ServletResponseWrapperIOExceptionpublic void flushBuffer()
throws IOException
Invoke copyBodyToResponse() to copy the cached body content to
the wrapped response object and flush its buffer.
flushBuffer in interface ServletResponseflushBuffer in class ServletResponseWrapperIOExceptionServletResponseWrapper.flushBuffer()public void setContentLength(int len)
setContentLength in interface ServletResponsesetContentLength in class ServletResponseWrapperpublic void setContentLengthLong(long len)
setContentLengthLong in interface ServletResponsesetContentLengthLong in class ServletResponseWrapperpublic boolean containsHeader(String name)
containsHeader in interface HttpServletResponsecontainsHeader in class HttpServletResponseWrapperpublic void setHeader(String name, String value)
setHeader in interface HttpServletResponsesetHeader in class HttpServletResponseWrapperpublic void addHeader(String name, String value)
addHeader in interface HttpServletResponseaddHeader in class HttpServletResponseWrapperpublic void setIntHeader(String name, int value)
setIntHeader in interface HttpServletResponsesetIntHeader in class HttpServletResponseWrapperpublic void addIntHeader(String name, int value)
addIntHeader in interface HttpServletResponseaddIntHeader in class HttpServletResponseWrapper@Nullable public String getHeader(String name)
getHeader in interface HttpServletResponsegetHeader in class HttpServletResponseWrapperpublic Collection<String> getHeaders(String name)
getHeaders in interface HttpServletResponsegetHeaders in class HttpServletResponseWrapperpublic Collection<String> getHeaderNames()
getHeaderNames in interface HttpServletResponsegetHeaderNames in class HttpServletResponseWrapperpublic void setBufferSize(int size)
setBufferSize in interface ServletResponsesetBufferSize in class ServletResponseWrapperpublic void resetBuffer()
resetBuffer in interface ServletResponseresetBuffer in class ServletResponseWrapperpublic void reset()
reset in interface ServletResponsereset 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
IOExceptionprotected void copyBodyToResponse(boolean complete)
throws IOException
complete - whether to set a corresponding content length
for the complete cached body contentIOException