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 |
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, setTrailerFields
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
Invoke copyBodyToResponse()
to copy the cached body content to
the wrapped response object and flush its buffer.
flushBuffer
in interface ServletResponse
flushBuffer
in class ServletResponseWrapper
IOException
ServletResponseWrapper.flushBuffer()
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 boolean containsHeader(String name)
containsHeader
in interface HttpServletResponse
containsHeader
in class HttpServletResponseWrapper
public void setHeader(String name, String value)
setHeader
in interface HttpServletResponse
setHeader
in class HttpServletResponseWrapper
public void addHeader(String name, String value)
addHeader
in interface HttpServletResponse
addHeader
in class HttpServletResponseWrapper
public void setIntHeader(String name, int value)
setIntHeader
in interface HttpServletResponse
setIntHeader
in class HttpServletResponseWrapper
public void addIntHeader(String name, int value)
addIntHeader
in interface HttpServletResponse
addIntHeader
in class HttpServletResponseWrapper
@Nullable public String getHeader(String name)
getHeader
in interface HttpServletResponse
getHeader
in class HttpServletResponseWrapper
public Collection<String> getHeaders(String name)
getHeaders
in interface HttpServletResponse
getHeaders
in class HttpServletResponseWrapper
public Collection<String> getHeaderNames()
getHeaderNames
in interface HttpServletResponse
getHeaderNames
in class HttpServletResponseWrapper
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