Package org.springframework.web.util
Class ContentCachingResponseWrapper
- java.lang.Object
- javax.servlet.ServletResponseWrapper
- javax.servlet.http.HttpServletResponseWrapper
- org.springframework.web.util.ContentCachingResponseWrapper
- All Implemented Interfaces:
HttpServletResponse
,ServletResponse
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 abyte array
.Used e.g. by
ShallowEtagHeaderFilter
.- Since:
- 4.1.3
- Author:
- Juergen Hoeller
- See Also:
ContentCachingRequestWrapper
Field Summary
Fields inherited from interface javax.servlet.http.HttpServletResponse
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 Summary
Constructors Constructor Description ContentCachingResponseWrapper(HttpServletResponse response)
Create a new ContentCachingResponseWrapper for the given servlet response.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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 anInputStream
to the cached content.int
getContentSize()
Return the current size of the cached content.ServletOutputStream
getOutputStream()
int
getStatusCode()
Return the status code as specified on the response.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
setStatus(int sc)
void
setStatus(int sc, String sm)
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, setDateHeader, setHeader, setIntHeader
Methods inherited from class javax.servlet.ServletResponseWrapper
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, setCharacterEncoding, setContentType, setLocale, setResponse
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface javax.servlet.ServletResponse
getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, setCharacterEncoding, setContentType, setLocale
Constructor Detail
ContentCachingResponseWrapper
public ContentCachingResponseWrapper(HttpServletResponse response)
Create a new ContentCachingResponseWrapper for the given servlet response.- Parameters:
response
- the original servlet response
Method Detail
setStatus
public void setStatus(int sc)
- Specified by:
setStatus
in interfaceHttpServletResponse
- Overrides:
setStatus
in classHttpServletResponseWrapper
setStatus
public void setStatus(int sc, String sm)
- Specified by:
setStatus
in interfaceHttpServletResponse
- Overrides:
setStatus
in classHttpServletResponseWrapper
sendError
public void sendError(int sc) throws IOException
- Specified by:
sendError
in interfaceHttpServletResponse
- Overrides:
sendError
in classHttpServletResponseWrapper
- Throws:
IOException
sendError
public void sendError(int sc, String msg) throws IOException
- Specified by:
sendError
in interfaceHttpServletResponse
- Overrides:
sendError
in classHttpServletResponseWrapper
- Throws:
IOException
sendRedirect
public void sendRedirect(String location) throws IOException
- Specified by:
sendRedirect
in interfaceHttpServletResponse
- Overrides:
sendRedirect
in classHttpServletResponseWrapper
- Throws:
IOException
getOutputStream
public ServletOutputStream getOutputStream() throws IOException
- Specified by:
getOutputStream
in interfaceServletResponse
- Overrides:
getOutputStream
in classServletResponseWrapper
- Throws:
IOException
getWriter
public PrintWriter getWriter() throws IOException
- Specified by:
getWriter
in interfaceServletResponse
- Overrides:
getWriter
in classServletResponseWrapper
- Throws:
IOException
flushBuffer
public void flushBuffer() throws IOException
- Specified by:
flushBuffer
in interfaceServletResponse
- Overrides:
flushBuffer
in classServletResponseWrapper
- Throws:
IOException
setContentLength
public void setContentLength(int len)
- Specified by:
setContentLength
in interfaceServletResponse
- Overrides:
setContentLength
in classServletResponseWrapper
setContentLengthLong
public void setContentLengthLong(long len)
- Specified by:
setContentLengthLong
in interfaceServletResponse
- Overrides:
setContentLengthLong
in classServletResponseWrapper
setBufferSize
public void setBufferSize(int size)
- Specified by:
setBufferSize
in interfaceServletResponse
- Overrides:
setBufferSize
in classServletResponseWrapper
resetBuffer
public void resetBuffer()
- Specified by:
resetBuffer
in interfaceServletResponse
- Overrides:
resetBuffer
in classServletResponseWrapper
reset
public void reset()
- Specified by:
reset
in interfaceServletResponse
- Overrides:
reset
in classServletResponseWrapper
getStatusCode
public int getStatusCode()
Return the status code as specified on the response.
getContentAsByteArray
public byte[] getContentAsByteArray()
Return the cached response content as a byte array.
getContentInputStream
public InputStream getContentInputStream()
Return anInputStream
to the cached content.- Since:
- 4.2
getContentSize
public int getContentSize()
Return the current size of the cached content.- Since:
- 4.2
copyBodyToResponse
public void copyBodyToResponse() throws IOException
Copy the complete cached body content to the response.- Throws:
IOException
- Since:
- 4.2
copyBodyToResponse
protected void copyBodyToResponse(boolean complete) throws IOException
Copy the cached body content to the response.- Parameters:
complete
- whether to set a corresponding content length for the complete cached body content- Throws:
IOException
- Since:
- 4.2