Class BufferedSlingHttpServletResponse

java.lang.Object
javax.servlet.ServletResponseWrapper
javax.servlet.http.HttpServletResponseWrapper
org.apache.sling.api.wrappers.SlingHttpServletResponseWrapper
com.adobe.acs.commons.util.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
  • Constructor Summary

    Constructors
    Constructor
    Description
    BufferedSlingHttpServletResponse(org.apache.sling.api.SlingHttpServletResponse wrappedResponse)
     
    BufferedSlingHttpServletResponse(org.apache.sling.api.SlingHttpServletResponse wrappedResponse, StringWriter writer, ByteArrayOutputStream outputStream)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    void
     
     
    javax.servlet.ServletOutputStream
     
     
    void
     

    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 class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    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 Details

    • BufferedSlingHttpServletResponse

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

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

    • 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
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException
    • getBufferedServletOutput

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