org.apache.click.extras.filter
Class CompressionServletResponseWrapper

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by org.apache.click.extras.filter.CompressionServletResponseWrapper
All Implemented Interfaces:
HttpServletResponse, ServletResponse

public class CompressionServletResponseWrapper
extends HttpServletResponseWrapper

Implementation of HttpServletResponseWrapper that works with the CompressionServletResponseStream implementation.

Note this Jakarta Tomcat examples Filter is packaged in Click Extras for convenience.


Field Summary
protected  String contentType
          Content type.
protected static String INFO
          Descriptive information about this Response implementation.
protected  HttpServletRequest origRequest
          The request with which this servlet is associated.
protected  HttpServletResponse origResponse
          Original response.
protected  ServletOutputStream stream
          The ServletOutputStream that has been returned by getOutputStream(), if any.
protected  int threshold
          The threshold number to compress.
protected  PrintWriter writer
          The PrintWriter that has been returned by getWriter(), if any.
 
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_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
CompressionServletResponseWrapper(HttpServletResponse response, HttpServletRequest request)
          Calls the parent constructor which creates a ServletResponse adaptor wrapping the given response object.
 
Method Summary
 ServletOutputStream createOutputStream()
          Create and return a ServletOutputStream to write the content associated with this Response.
 void finishResponse()
          Finish a response.
 void flushBuffer()
          Flush the buffer and commit this response.
 ServletOutputStream getOutputStream()
          Return the servlet output stream associated with this Response.
 PrintWriter getWriter()
          Return the writer associated with this Response.
 void setCompressionThreshold(int threshold)
          Set threshold the compression threshold in bytes.
 void setContentLength(int length)
          Set the content length.
 void setContentType(String contentType)
          Set content type.
 void setHeader(String header, String value)
          Set the string value in the header.
 void setIntHeader(String header, int value)
          Set the int value in the header.
 
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, sendError, sendError, sendRedirect, setDateHeader, setStatus, setStatus
 
Methods inherited from class javax.servlet.ServletResponseWrapper
getBufferSize, getCharacterEncoding, getLocale, getResponse, isCommitted, reset, resetBuffer, setBufferSize, 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, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setLocale
 

Field Detail

origResponse

protected HttpServletResponse origResponse
Original response.


origRequest

protected HttpServletRequest origRequest
The request with which this servlet is associated.


INFO

protected static final String INFO
Descriptive information about this Response implementation.

See Also:
Constant Field Values

stream

protected ServletOutputStream stream
The ServletOutputStream that has been returned by getOutputStream(), if any.


writer

protected PrintWriter writer
The PrintWriter that has been returned by getWriter(), if any.


threshold

protected int threshold
The threshold number to compress.


contentType

protected String contentType
Content type.

Constructor Detail

CompressionServletResponseWrapper

public CompressionServletResponseWrapper(HttpServletResponse response,
                                         HttpServletRequest request)
Calls the parent constructor which creates a ServletResponse adaptor wrapping the given response object.

Parameters:
response - the servlet response to wrap
request - The associated request
Method Detail

setContentType

public void setContentType(String contentType)
Set content type.

Specified by:
setContentType in interface ServletResponse
Overrides:
setContentType in class ServletResponseWrapper
Parameters:
contentType - the response content type

setCompressionThreshold

public void setCompressionThreshold(int threshold)
Set threshold the compression threshold in bytes.

Parameters:
threshold - the compression threshold in bytes

createOutputStream

public ServletOutputStream createOutputStream()
                                       throws IOException
Create and return a ServletOutputStream to write the content associated with this Response.

Returns:
a new compressed servlet output stream
Throws:
IOException - if an input/output error occurs

finishResponse

public void finishResponse()
Finish a response.


flushBuffer

public void flushBuffer()
                 throws IOException
Flush the buffer and commit this response.

Specified by:
flushBuffer in interface ServletResponse
Overrides:
flushBuffer in class ServletResponseWrapper
Throws:
IOException - if an input/output error occurs

getOutputStream

public ServletOutputStream getOutputStream()
                                    throws IOException
Return the servlet output stream associated with this Response.

Specified by:
getOutputStream in interface ServletResponse
Overrides:
getOutputStream in class ServletResponseWrapper
Returns:
the servlet output stream associated with this response
Throws:
IllegalStateException - if getWriter has already been called for this response
IOException - if an input/output error occurs

getWriter

public PrintWriter getWriter()
                      throws IOException
Return the writer associated with this Response.

Specified by:
getWriter in interface ServletResponse
Overrides:
getWriter in class ServletResponseWrapper
Returns:
the servlet print writer
Throws:
IllegalStateException - if getOutputStream has already been called for this response
IOException - if an input/output error occurs

setContentLength

public void setContentLength(int length)
Set the content length. This method does nothing.

Specified by:
setContentLength in interface ServletResponse
Overrides:
setContentLength in class ServletResponseWrapper
Parameters:
length - the content length

setIntHeader

public void setIntHeader(String header,
                         int value)
Set the int value in the header.

Specified by:
setIntHeader in interface HttpServletResponse
Overrides:
setIntHeader in class HttpServletResponseWrapper
Parameters:
header - the response header
value - the int value

setHeader

public void setHeader(String header,
                      String value)
Set the string value in the header.

Specified by:
setHeader in interface HttpServletResponse
Overrides:
setHeader in class HttpServletResponseWrapper
Parameters:
header - the response header
value - the string value