Class HttpServletResponseOutputWrapper

java.lang.Object
jakarta.servlet.ServletResponseWrapper
jakarta.servlet.http.HttpServletResponseWrapper
org.openremote.container.web.file.HttpServletResponseOutputWrapper
All Implemented Interfaces:
jakarta.servlet.http.HttpServletResponse, jakarta.servlet.ServletResponse
Direct Known Subclasses:
GzipHttpServletResponse

public abstract class HttpServletResponseOutputWrapper extends jakarta.servlet.http.HttpServletResponseWrapper
Convenience class for extending HttpServletResponseWrapper wherein the servlet response OutputStream has to be replaced by a custom implementation. This saves the developer from writing repeated getOutputStream(), getWriter() and flushBuffer() boilerplate. All the developer has to do is to implement the createOutputStream() accordingly. This will in turn be used by both getOutputStream() and getWriter().

The boolean property passThrough, which defaults to false also enables the developer to control whether to pass through to the wrapped ServletOutputStream or not.

Since:
1.1
  • 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
    Constructor
    Description
    HttpServletResponseOutputWrapper(jakarta.servlet.http.HttpServletResponse wrappedResponse)
    Construct a new HttpServletResponseOutputWrapper which wraps the given response.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Close the response body.
    protected abstract OutputStream
    Returns the custom implementation of the servlet response OutputStream.
    void
     
    jakarta.servlet.ServletOutputStream
     
     
    boolean
    Returns whether the response is committed or not.
    boolean
    Returns whether the writing has to be passed through to the wrapped ServletOutputStream.
    void
     
    void
    setPassThrough(boolean passThrough)
    Sets whether the writing has to be passed through to the wrapped ServletOutputStream.

    Methods inherited from class jakarta.servlet.http.HttpServletResponseWrapper

    addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectURL, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, 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 Details

    • HttpServletResponseOutputWrapper

      public HttpServletResponseOutputWrapper(jakarta.servlet.http.HttpServletResponse wrappedResponse)
      Construct a new HttpServletResponseOutputWrapper which wraps the given response.
      Parameters:
      wrappedResponse - The wrapped response.
  • Method Details

    • createOutputStream

      protected abstract OutputStream createOutputStream()
      Returns the custom implementation of the servlet response OutputStream.
      Returns:
      The custom implementation of the servlet response OutputStream.
    • getOutputStream

      public jakarta.servlet.ServletOutputStream getOutputStream() throws IOException
      Specified by:
      getOutputStream in interface jakarta.servlet.ServletResponse
      Overrides:
      getOutputStream in class jakarta.servlet.ServletResponseWrapper
      Throws:
      IOException
    • getWriter

      public PrintWriter getWriter() throws IOException
      Specified by:
      getWriter in interface jakarta.servlet.ServletResponse
      Overrides:
      getWriter in class jakarta.servlet.ServletResponseWrapper
      Throws:
      IOException
    • flushBuffer

      public void flushBuffer() throws IOException
      Specified by:
      flushBuffer in interface jakarta.servlet.ServletResponse
      Overrides:
      flushBuffer in class jakarta.servlet.ServletResponseWrapper
      Throws:
      IOException
    • close

      public void close() throws IOException
      Close 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:
      reset in interface jakarta.servlet.ServletResponse
      Overrides:
      reset in class jakarta.servlet.ServletResponseWrapper
    • 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:
      isCommitted in interface jakarta.servlet.ServletResponse
      Overrides:
      isCommitted in class jakarta.servlet.ServletResponseWrapper
      Returns:
      true if the response is committed, otherwise false.
    • isPassThrough

      public boolean isPassThrough()
      Returns whether the writing has to be passed through to the wrapped ServletOutputStream.
      Returns:
      true, if the writing has to be passed through to the wrapped ServletOutputStream, otherwise false.
    • setPassThrough

      public void setPassThrough(boolean passThrough)
      Sets whether the writing has to be passed through to the wrapped ServletOutputStream.
      Parameters:
      passThrough - set to true if the writing has to be passed through to the wrapped ServletOutputStream.