Class ContentCachingResponseWrapper
java.lang.Object
jakarta.servlet.ServletResponseWrapper
jakarta.servlet.http.HttpServletResponseWrapper
org.springframework.web.util.ContentCachingResponseWrapper
- All Implemented Interfaces:
jakarta.servlet.http.HttpServletResponse, jakarta.servlet.ServletResponse
public class ContentCachingResponseWrapper
extends jakarta.servlet.http.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, for example, by ShallowEtagHeaderFilter.
- Since:
- 4.1.3
- Author:
- Juergen Hoeller, Sam Brannen
- See Also:
-
Field Summary
Fields inherited from interface jakarta.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_MISDIRECTED_REQUEST, 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_PERMANENT_REDIRECT, 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_UNPROCESSABLE_CONTENT, SC_UNSUPPORTED_MEDIA_TYPE, SC_UPGRADE_REQUIRED, SC_USE_PROXY -
Constructor Summary
ConstructorsConstructorDescriptionContentCachingResponseWrapper(jakarta.servlet.http.HttpServletResponse response) Create a new ContentCachingResponseWrapper for the given servlet response. -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidaddIntHeader(String name, int value) booleancontainsHeader(String name) voidCopy the complete cached body content to the response.protected voidcopyBodyToResponse(boolean complete) Copy the cached body content to the response.voidThis method neither flushes content to the client nor commits the underlying response, since the content has not yet been copied to the response.byte[]Return the cached response content as a byte array.Return anInputStreamto the cached content.intReturn the current size of the cached content.getHeaders(String name) jakarta.servlet.ServletOutputStreamvoidreset()voidvoidsendError(int sc) voidvoidsendRedirect(String location) voidsetBufferSize(int size) voidsetContentLength(int len) voidsetContentLengthLong(long len) voidvoidsetIntHeader(String name, int value) Methods inherited from class jakarta.servlet.http.HttpServletResponseWrapper
addCookie, addDateHeader, encodeRedirectURL, encodeURL, getStatus, getTrailerFields, sendRedirect, sendRedirect, sendRedirect, setDateHeader, setStatus, setTrailerFieldsMethods inherited from class jakarta.servlet.ServletResponseWrapper
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, setCharacterEncoding, setCharacterEncoding, setContentType, setLocale, setResponseMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jakarta.servlet.ServletResponse
getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, setCharacterEncoding, setCharacterEncoding, setContentType, setLocale
-
Constructor Details
-
ContentCachingResponseWrapper
public ContentCachingResponseWrapper(jakarta.servlet.http.HttpServletResponse response) Create a new ContentCachingResponseWrapper for the given servlet response.- Parameters:
response- the original servlet response
-
-
Method Details
-
sendError
- Specified by:
sendErrorin interfacejakarta.servlet.http.HttpServletResponse- Overrides:
sendErrorin classjakarta.servlet.http.HttpServletResponseWrapper- Throws:
IOException
-
sendError
- Specified by:
sendErrorin interfacejakarta.servlet.http.HttpServletResponse- Overrides:
sendErrorin classjakarta.servlet.http.HttpServletResponseWrapper- Throws:
IOException
-
sendRedirect
- Specified by:
sendRedirectin interfacejakarta.servlet.http.HttpServletResponse- Overrides:
sendRedirectin classjakarta.servlet.http.HttpServletResponseWrapper- Throws:
IOException
-
getOutputStream
- Specified by:
getOutputStreamin interfacejakarta.servlet.ServletResponse- Overrides:
getOutputStreamin classjakarta.servlet.ServletResponseWrapper- Throws:
IOException
-
getWriter
- Specified by:
getWriterin interfacejakarta.servlet.ServletResponse- Overrides:
getWriterin classjakarta.servlet.ServletResponseWrapper- Throws:
IOException
-
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.Invoke
copyBodyToResponse()to copy the cached body content to the wrapped response object and flush its buffer.- Specified by:
flushBufferin interfacejakarta.servlet.ServletResponse- Overrides:
flushBufferin classjakarta.servlet.ServletResponseWrapper- Throws:
IOException- See Also:
-
setContentLength
public void setContentLength(int len) - Specified by:
setContentLengthin interfacejakarta.servlet.ServletResponse- Overrides:
setContentLengthin classjakarta.servlet.ServletResponseWrapper
-
setContentLengthLong
public void setContentLengthLong(long len) - Specified by:
setContentLengthLongin interfacejakarta.servlet.ServletResponse- Overrides:
setContentLengthLongin classjakarta.servlet.ServletResponseWrapper
-
containsHeader
- Specified by:
containsHeaderin interfacejakarta.servlet.http.HttpServletResponse- Overrides:
containsHeaderin classjakarta.servlet.http.HttpServletResponseWrapper
-
setHeader
-
addHeader
-
setIntHeader
- Specified by:
setIntHeaderin interfacejakarta.servlet.http.HttpServletResponse- Overrides:
setIntHeaderin classjakarta.servlet.http.HttpServletResponseWrapper
-
addIntHeader
- Specified by:
addIntHeaderin interfacejakarta.servlet.http.HttpServletResponse- Overrides:
addIntHeaderin classjakarta.servlet.http.HttpServletResponseWrapper
-
getHeader
-
getHeaders
- Specified by:
getHeadersin interfacejakarta.servlet.http.HttpServletResponse- Overrides:
getHeadersin classjakarta.servlet.http.HttpServletResponseWrapper
-
getHeaderNames
- Specified by:
getHeaderNamesin interfacejakarta.servlet.http.HttpServletResponse- Overrides:
getHeaderNamesin classjakarta.servlet.http.HttpServletResponseWrapper
-
setBufferSize
public void setBufferSize(int size) - Specified by:
setBufferSizein interfacejakarta.servlet.ServletResponse- Overrides:
setBufferSizein classjakarta.servlet.ServletResponseWrapper
-
resetBuffer
public void resetBuffer()- Specified by:
resetBufferin interfacejakarta.servlet.ServletResponse- Overrides:
resetBufferin classjakarta.servlet.ServletResponseWrapper
-
reset
public void reset()- Specified by:
resetin interfacejakarta.servlet.ServletResponse- Overrides:
resetin classjakarta.servlet.ServletResponseWrapper
-
getContentAsByteArray
public byte[] getContentAsByteArray()Return the cached response content as a byte array. -
getContentInputStream
-
getContentSize
public int getContentSize()Return the current size of the cached content.- Since:
- 4.2
-
copyBodyToResponse
Copy the complete cached body content to the response.- Throws:
IOException- Since:
- 4.2
-
copyBodyToResponse
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
-