org.ibisph.filter.artifact
Class ResponseWrapper

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by org.ibisph.filter.AbstractResponseWrapper
              extended by org.ibisph.filter.artifact.ResponseWrapper
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class ResponseWrapper
extends AbstractResponseWrapper

Basic response wrapper that captures results from downstream processing. Uses the standard response stream and captures any downstream filter/ servlet request/response content so that it can be artifacted (saved to a disk file by the Filter) for future request responses.

Author:
JSP Book (www.jspbook.com)

Field Summary
protected  java.io.FileOutputStream fileOutputStream
           
 
Fields inherited from class org.ibisph.filter.AbstractResponseWrapper
origResponse, stream, writer
 
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
ResponseWrapper(javax.servlet.http.HttpServletResponse response, java.io.FileOutputStream fileOutputStream)
          Core of the response wrapper.
 
Method Summary
 javax.servlet.ServletOutputStream createOutputStream()
          Main method that is used by the filter which handles wrapping the response with a new output stream.
 
Methods inherited from class org.ibisph.filter.AbstractResponseWrapper
finishResponse, flushBuffer, getOutputStream, getWriter
 
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus
 
Methods inherited from class javax.servlet.ServletResponseWrapper
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, reset, 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, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentType, setLocale
 

Field Detail

fileOutputStream

protected java.io.FileOutputStream fileOutputStream
Constructor Detail

ResponseWrapper

public ResponseWrapper(javax.servlet.http.HttpServletResponse response,
                       java.io.FileOutputStream fileOutputStream)
Core of the response wrapper. This class basically wraps a new output stream around the current response.

Parameters:
response - Current response object needed by the wrapper.
fileOutputStream - Newly created output stream that is to be used to capture the response.
Method Detail

createOutputStream

public javax.servlet.ServletOutputStream createOutputStream()
                                                     throws java.io.IOException
Main method that is used by the filter which handles wrapping the response with a new output stream.

Specified by:
createOutputStream in class AbstractResponseWrapper
Returns:
Newly created servlet output stream that is to be used to capture the response.
Throws:
java.io.IOException - Based on the situation.