- java.lang.Object
-
- jakarta.servlet.ServletResponseWrapper
-
- jakarta.servlet.http.HttpServletResponseWrapper
-
- org.omnifaces.servlet.HttpServletResponseOutputWrapper
-
- All Implemented Interfaces:
HttpServletResponse,ServletResponse
- Direct Known Subclasses:
BufferedHttpServletResponse,CompressedHttpServletResponse,GzipHttpServletResponse
public abstract class HttpServletResponseOutputWrapper extends HttpServletResponseWrapper
Convenience class for extendingHttpServletResponseWrapperwherein the servlet responseOutputStreamhas to be replaced by a custom implementation. This saves the developer from writing repeatedgetOutputStream(),getWriter()andflushBuffer()boilerplate. All the developer has to do is to implement thecreateOutputStream()accordingly. This will in turn be used by bothgetOutputStream()andgetWriter().The boolean property
passThrough, which defaults tofalsealso enables the developer to control whether to pass through to the wrappedServletOutputStreamor not.- Since:
- 1.1
- Author:
- Bauke Scholtz
-
-
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
Constructors Modifier Constructor Description protectedHttpServletResponseOutputWrapper(HttpServletResponse wrappedResponse)Construct a newHttpServletResponseOutputWrapperwhich wraps the given response.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclose()Close the response body.protected abstract OutputStreamcreateOutputStream()Returns the custom implementation of the servlet responseOutputStream.voidflushBuffer()ServletOutputStreamgetOutputStream()PrintWritergetWriter()booleanisCommitted()Returns whether the response is committed or not.booleanisPassThrough()Returns whether the writing has to be passed through to the wrappedServletOutputStream.voidreset()voidsetPassThrough(boolean passThrough)Sets whether the writing has to be passed through to the wrappedServletOutputStream.-
Methods inherited from class jakarta.servlet.http.HttpServletResponseWrapper
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus, setTrailerFields
-
Methods inherited from class jakarta.servlet.ServletResponseWrapper
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isWrapperFor, isWrapperFor, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, 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 jakarta.servlet.ServletResponse
getBufferSize, getCharacterEncoding, getContentType, getLocale, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale
-
-
-
-
Constructor Detail
-
HttpServletResponseOutputWrapper
protected HttpServletResponseOutputWrapper(HttpServletResponse wrappedResponse)
Construct a newHttpServletResponseOutputWrapperwhich wraps the given response.- Parameters:
wrappedResponse- The wrapped response.
-
-
Method Detail
-
createOutputStream
protected abstract OutputStream createOutputStream()
Returns the custom implementation of the servlet responseOutputStream.- Returns:
- The custom implementation of the servlet response
OutputStream.
-
getOutputStream
public ServletOutputStream getOutputStream() throws IOException
- Specified by:
getOutputStreamin interfaceServletResponse- Overrides:
getOutputStreamin classServletResponseWrapper- Throws:
IOException
-
getWriter
public PrintWriter getWriter() throws IOException
- Specified by:
getWriterin interfaceServletResponse- Overrides:
getWriterin classServletResponseWrapper- Throws:
IOException
-
flushBuffer
public void flushBuffer() throws IOException- Specified by:
flushBufferin interfaceServletResponse- Overrides:
flushBufferin classServletResponseWrapper- Throws:
IOException
-
close
public void close() throws IOExceptionClose the response body. This closes any created writer or output stream.- Throws:
IOException- When an I/O error occurs.
-
reset
public void reset()
- Specified by:
resetin interfaceServletResponse- Overrides:
resetin classServletResponseWrapper
-
isCommitted
public boolean isCommitted()
Returns whether the response is committed or not. The response is also considered committed when the resettable buffer has been flushed.- Specified by:
isCommittedin interfaceServletResponse- Overrides:
isCommittedin classServletResponseWrapper- Returns:
trueif the response is committed, otherwisefalse.
-
isPassThrough
public boolean isPassThrough()
Returns whether the writing has to be passed through to the wrappedServletOutputStream.- Returns:
true, if the writing has to be passed through to the wrappedServletOutputStream, otherwisefalse.
-
setPassThrough
public void setPassThrough(boolean passThrough)
Sets whether the writing has to be passed through to the wrappedServletOutputStream.- Parameters:
passThrough- set totrueif the writing has to be passed through to the wrappedServletOutputStream.
-
-