Class BufferedSlingHttpServletResponse

  • All Implemented Interfaces:
    Closeable, AutoCloseable, javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse, org.apache.sling.api.adapter.Adaptable, org.apache.sling.api.SlingHttpServletResponse

    public class BufferedSlingHttpServletResponse
    extends org.apache.sling.api.wrappers.SlingHttpServletResponseWrapper
    implements Closeable
    A wrapper around a SlingHttpServletResponse which buffers all output being written to getOutputStream() or getWriter(). The response cannot be committed via flushBuffer() but only via close(). Access to the underlying buffer is provided via getBufferedServletOutput().

    Hint: This servlet wrapper must extend SlingHttpServletResponseWrapper, as otherwise RequestData.unwrap() throws exceptions

    • Field Summary

      • 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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      void flushBuffer()  
      BufferedServletOutput getBufferedServletOutput()  
      javax.servlet.ServletOutputStream getOutputStream()  
      PrintWriter getWriter()  
      void resetBuffer()  
      • Methods inherited from class org.apache.sling.api.wrappers.SlingHttpServletResponseWrapper

        adaptTo, getSlingResponse
      • Methods inherited from class javax.servlet.http.HttpServletResponseWrapper

        addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus
      • Methods inherited from class javax.servlet.ServletResponseWrapper

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

        addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus
      • Methods inherited from interface javax.servlet.ServletResponse

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

      • BufferedSlingHttpServletResponse

        public BufferedSlingHttpServletResponse​(org.apache.sling.api.SlingHttpServletResponse wrappedResponse)
      • BufferedSlingHttpServletResponse

        public BufferedSlingHttpServletResponse​(org.apache.sling.api.SlingHttpServletResponse wrappedResponse,
                                                StringWriter writer,
                                                ByteArrayOutputStream outputStream)
    • Method Detail

      • getOutputStream

        public javax.servlet.ServletOutputStream 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
      • flushBuffer

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

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

        public BufferedServletOutput getBufferedServletOutput()
        Returns:
        the underlying wrapper around the buffered output