Class ContentCachingResponseWrapper
java.lang.Object
jakarta.servlet.ServletResponseWrapper
jakarta.servlet.http.HttpServletResponseWrapper
net.solarnetwork.central.web.support.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
allows this content to be retrieved via a byte array.
Note that the content is copied to the underlying servlet stream as well as the cached content buffer. This wrapper supports compressing the cached content with gzip.
Originally based on
ContentCachingResponseWrapper.
- Since:
- 1.2
-
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_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
ConstructorsConstructorDescriptionContentCachingResponseWrapper(jakarta.servlet.http.HttpServletResponse response, boolean gzip) Create a new ContentCachingResponseWrapper for the given servlet response. -
Method Summary
Modifier and TypeMethodDescriptionvoidbyte[]Return the cached response content as a byte array.Return anInputStreamto the cached content.intReturn the current size of the cached content.org.springframework.http.HttpHeadersGet the HTTP headers.jakarta.servlet.ServletOutputStreambooleanTest if the cached content has been compressed with gzip.voidreset()voidvoidsendError(int sc) voidvoidsendRedirect(String location) voidsetBufferSize(int size) voidMethods inherited from class jakarta.servlet.http.HttpServletResponseWrapper
addCookie, addDateHeader, addIntHeader, containsHeader, encodeRedirectURL, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, setDateHeader, setIntHeader, setStatus, setTrailerFieldsMethods inherited from class jakarta.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale, setResponseMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jakarta.servlet.ServletResponse
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale
-
Constructor Details
-
ContentCachingResponseWrapper
public ContentCachingResponseWrapper(jakarta.servlet.http.HttpServletResponse response, boolean gzip) throws IOException Create a new ContentCachingResponseWrapper for the given servlet response.- Parameters:
response- the original servlet responsegzip- true to compress the cached content with gzip- Throws:
IOException
-
-
Method Details
-
setHeader
- Specified by:
setHeaderin interfacejakarta.servlet.http.HttpServletResponse- Overrides:
setHeaderin classjakarta.servlet.http.HttpServletResponseWrapper
-
addHeader
- Specified by:
addHeaderin interfacejakarta.servlet.http.HttpServletResponse- Overrides:
addHeaderin classjakarta.servlet.http.HttpServletResponseWrapper
-
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
-
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
Return the cached response content as a byte array.- Throws:
IOException
-
getContentInputStream
Return anInputStreamto the cached content.- Throws:
IOException
-
getContentSize
Return the current size of the cached content.- Throws:
IOException
-
isContentGzip
public boolean isContentGzip()Test if the cached content has been compressed with gzip.- Returns:
- true if the cached content is compressed with gzip
-
getHttpHeaders
public org.springframework.http.HttpHeaders getHttpHeaders()Get the HTTP headers.- Returns:
- the headers
-