org.ibisph.filter.gzip
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.gzip.ResponseWrapper
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class ResponseWrapper
extends AbstractResponseWrapper

Basic/standard response wrapper needed for the compression filtering.

Author:
JSP Book (www.jspbook.com)

Field Summary
 
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)
          Required Response Wrapper constructor.
 
Method Summary
 javax.servlet.ServletOutputStream createOutputStream()
          Creates the actual capturing, compression stream used by this filter.
 void setContentLength(int length)
          Core interface method that sets the content length.
 
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, 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, setContentType, setLocale
 

Constructor Detail

ResponseWrapper

public ResponseWrapper(javax.servlet.http.HttpServletResponse response)
Required Response Wrapper constructor. This does not do any special other than call the super(response).

Parameters:
response - HTTP Servlet Response to be wrapped.
Method Detail

createOutputStream

public javax.servlet.ServletOutputStream createOutputStream()
                                                     throws java.io.IOException
Creates the actual capturing, compression stream used by this filter.

Specified by:
createOutputStream in class AbstractResponseWrapper
Returns:
New ServletOutputStream which captures the wrapped response's output stream and is then used to compress the data and stream back to the original request's/response's output stream.
Throws:
java.io.IOException - Based on the situation.

setContentLength

public void setContentLength(int length)
Core interface method that sets the content length. This method is overriden without any functionality because it won't be the same length because the response is zipped/compressed.

Specified by:
setContentLength in interface javax.servlet.ServletResponse
Overrides:
setContentLength in class javax.servlet.ServletResponseWrapper
Parameters:
length - Number of bytes to be returned based on of the request.