Class BufferingHttpServletResponse

  • All Implemented Interfaces:
    javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

    public class BufferingHttpServletResponse
    extends javax.servlet.http.HttpServletResponseWrapper
    Buffers the response until stopBuffering() is called.

    This allows a container to commit a transaction before the body is written to the client.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected BufferingServletOutputStream bufferingOutputStream  
      • 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
      BufferingHttpServletResponse​(javax.servlet.http.HttpServletResponse response)
      A HttpServletResponse wrapper that buffers all data until stopBuffering() is called.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void flushBuffer()
      Don't flush if we are still buffering.
      BufferingServletOutputStream getOutputStream()  
      PrintWriter getWriter()  
      boolean isCommitted()  
      void resetBuffer()  
      void stopBuffering()
      Stops buffering and sends any buffered data to the response's output stream.
      • Methods inherited from class javax.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 javax.servlet.ServletResponseWrapper

        getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isWrapperFor, isWrapperFor, reset, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale, setResponse
      • Methods inherited from interface javax.servlet.ServletResponse

        getBufferSize, getCharacterEncoding, getContentType, getLocale, reset, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale
    • Constructor Detail

      • BufferingHttpServletResponse

        public BufferingHttpServletResponse​(javax.servlet.http.HttpServletResponse response)
                                     throws IOException
        A HttpServletResponse wrapper that buffers all data until stopBuffering() is called.

        stopBuffering() MUST be called in a finally statement in order for resources to be closed properly.

        Throws:
        IOException
    • Method Detail

      • getOutputStream

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

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

        public void stopBuffering()
                           throws IOException
        Stops buffering and sends any buffered data to the response's output stream.
        Throws:
        IOException
      • isCommitted

        public boolean isCommitted()
        Specified by:
        isCommitted in interface javax.servlet.ServletResponse
        Overrides:
        isCommitted in class javax.servlet.ServletResponseWrapper
      • resetBuffer

        public void resetBuffer()
        Specified by:
        resetBuffer in interface javax.servlet.ServletResponse
        Overrides:
        resetBuffer in class javax.servlet.ServletResponseWrapper
      • flushBuffer

        public void flushBuffer()
                         throws IOException
        Don't flush if we are still buffering.
        Specified by:
        flushBuffer in interface javax.servlet.ServletResponse
        Overrides:
        flushBuffer in class javax.servlet.ServletResponseWrapper
        Throws:
        IOException