org.omnifaces.servlet
Class BufferedHttpServletResponse

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by org.omnifaces.servlet.HttpServletResponseOutputWrapper
              extended by org.omnifaces.servlet.BufferedHttpServletResponse
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class BufferedHttpServletResponse
extends HttpServletResponseOutputWrapper

This HTTP servlet response implementation buffers the entire response body. The buffered response body is available as a byte array via the getBuffer() method. Note that the buffered response writer will use same character encoding as is been set on the response supplied to the constructor and that this way any ServletResponse.setCharacterEncoding(String) calls on the included JSP/Servlet resource have thus no effect.

Since:
1.1
Author:
Bauke Scholtz

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
BufferedHttpServletResponse(javax.servlet.http.HttpServletResponse response)
          Construct a buffered HTTP servlet response which wraps the given response.
 
Method Summary
protected  java.io.OutputStream createOutputStream()
          Returns the custom implementation of the servlet response OutputStream.
 byte[] getBuffer()
          Flushes and returns the buffered response.
 java.lang.String getBufferAsString()
          Flushes and returns the buffered response as a string which is encoded using the character encoding provided by ServletResponseWrapper.getCharacterEncoding().
 
Methods inherited from class org.omnifaces.servlet.HttpServletResponseOutputWrapper
close, flushBuffer, getOutputStream, getWriter, isCommitted, isPassThrough, reset, setPassThrough
 
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, isWrapperFor, isWrapperFor, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, 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.ServletResponse
getBufferSize, getCharacterEncoding, getContentType, getLocale, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentType, setLocale
 

Constructor Detail

BufferedHttpServletResponse

public BufferedHttpServletResponse(javax.servlet.http.HttpServletResponse response)
Construct a buffered HTTP servlet response which wraps the given response.

Parameters:
response - The response to be wrapped.
Method Detail

createOutputStream

protected java.io.OutputStream createOutputStream()
Description copied from class: HttpServletResponseOutputWrapper
Returns the custom implementation of the servlet response OutputStream.

Specified by:
createOutputStream in class HttpServletResponseOutputWrapper
Returns:
The custom implementation of the servlet response OutputStream.

getBuffer

public byte[] getBuffer()
                 throws java.io.IOException
Flushes and returns the buffered response.

Returns:
The buffered response.
Throws:
java.io.IOException - When an I/O error occurs.

getBufferAsString

public java.lang.String getBufferAsString()
                                   throws java.io.IOException
Flushes and returns the buffered response as a string which is encoded using the character encoding provided by ServletResponseWrapper.getCharacterEncoding().

Returns:
The buffered response as string.
Throws:
java.io.IOException - When an I/O error occurs.