SunONE Application Server v8.0 PE

com.sun.appserv.web.cache.filter
Class CachingResponseWrapper

java.lang.Object
  extended byjavax.servlet.ServletResponseWrapper
      extended byjavax.servlet.http.HttpServletResponseWrapper
          extended bycom.sun.appserv.web.cache.filter.CachingResponseWrapper
All Implemented Interfaces:
HttpServletResponse, ServletResponse

public class CachingResponseWrapper
extends HttpServletResponseWrapper

a wrapper to HttpServletResponse to cache the outbound headers and content

See Also:
and, HttpServletResponse

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
CachingResponseWrapper(HttpServletResponse response)
          Constructs a response adaptor wrapping the given response.
 
Method Summary
 void addCookie(Cookie cookie)
          The default behavior of this method is to call addCookie(Cookie cookie) on the wrapped response object.
 void addDateHeader(java.lang.String name, long value)
          Add the specified date header to the specified value.
 void addHeader(java.lang.String name, java.lang.String value)
          Add the specified header to the specified value.
 void addIntHeader(java.lang.String name, int value)
          Add the specified integer header to the specified value.
 HttpCacheEntry cacheResponse()
          called by doFilter to cache the response that was just sent out
 void clear()
          clear the contents of this wrapper
 java.lang.Long getExpiresDateHeader()
          return the Expires: date header value
 ServletOutputStream getOutputStream()
          Return the servlet output stream associated with this Response.
 java.io.PrintWriter getWriter()
          Return the writer associated with this Response.
 boolean isError()
          has the response been set to error
 void sendError(int status)
          Send an error response with the specified status and a default message.
 void sendError(int status, java.lang.String message)
          Send an error response with the specified status and message.
 void setContentLength(int len)
          Set the content length (in bytes) for this Response.
 void setContentType(java.lang.String type)
          Set the content type for this Response.
 void setDateHeader(java.lang.String name, long value)
          Set the specified date header to the specified value.
 void setHeader(java.lang.String name, java.lang.String value)
          Set the specified header to the specified value.
 void setIntHeader(java.lang.String name, int value)
          Set the specified integer header to the specified value.
 void setLocale(java.util.Locale locale)
          Set the Locale that is appropriate for this response, including setting the appropriate character encoding.
 void setStatus(int sc)
          Set the HTTP status to be returned with this response.
 
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, sendRedirect, setStatus
 
Methods inherited from class javax.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, 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
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding
 

Constructor Detail

CachingResponseWrapper

public CachingResponseWrapper(HttpServletResponse response)
Constructs a response adaptor wrapping the given response.

Throws:
java.lang.IllegalArgumentException - if the response is null
Method Detail

getOutputStream

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

Specified by:
getOutputStream in interface ServletResponse
Overrides:
getOutputStream in class ServletResponseWrapper
Throws:
java.lang.IllegalStateException - if getWriter has already been called for this response
java.io.IOException - if an input/output error occurs

getWriter

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

Specified by:
getWriter in interface ServletResponse
Overrides:
getWriter in class ServletResponseWrapper
Throws:
java.lang.IllegalStateException - if getOutputStream has already been called for this response
java.io.IOException - if an input/output error occurs

setContentLength

public void setContentLength(int len)
Set the content length (in bytes) for this Response.

Specified by:
setContentLength in interface ServletResponse
Overrides:
setContentLength in class ServletResponseWrapper

setContentType

public void setContentType(java.lang.String type)
Set the content type for this Response.

Specified by:
setContentType in interface ServletResponse
Overrides:
setContentType in class ServletResponseWrapper
Parameters:
type - The new content type

setLocale

public void setLocale(java.util.Locale locale)
Set the Locale that is appropriate for this response, including setting the appropriate character encoding.

Specified by:
setLocale in interface ServletResponse
Overrides:
setLocale in class ServletResponseWrapper
Parameters:
locale - The new locale

addCookie

public void addCookie(Cookie cookie)
The default behavior of this method is to call addCookie(Cookie cookie) on the wrapped response object.

Specified by:
addCookie in interface HttpServletResponse
Overrides:
addCookie in class HttpServletResponseWrapper

setHeader

public void setHeader(java.lang.String name,
                      java.lang.String value)
Set the specified header to the specified value.

Specified by:
setHeader in interface HttpServletResponse
Overrides:
setHeader in class HttpServletResponseWrapper
Parameters:
name - Name of the header to set
value - Value to be set

setIntHeader

public void setIntHeader(java.lang.String name,
                         int value)
Set the specified integer header to the specified value.

Specified by:
setIntHeader in interface HttpServletResponse
Overrides:
setIntHeader in class HttpServletResponseWrapper
Parameters:
name - Name of the header to set
value - Integer value to be set

addHeader

public void addHeader(java.lang.String name,
                      java.lang.String value)
Add the specified header to the specified value.

Specified by:
addHeader in interface HttpServletResponse
Overrides:
addHeader in class HttpServletResponseWrapper
Parameters:
name - Name of the header to set
value - Value to be set

addIntHeader

public void addIntHeader(java.lang.String name,
                         int value)
Add the specified integer header to the specified value.

Specified by:
addIntHeader in interface HttpServletResponse
Overrides:
addIntHeader in class HttpServletResponseWrapper
Parameters:
name - Name of the header to set
value - Integer value to be set

setDateHeader

public void setDateHeader(java.lang.String name,
                          long value)
Set the specified date header to the specified value.

Specified by:
setDateHeader in interface HttpServletResponse
Overrides:
setDateHeader in class HttpServletResponseWrapper
Parameters:
name - Name of the header to set
value - Date value to be set

addDateHeader

public void addDateHeader(java.lang.String name,
                          long value)
Add the specified date header to the specified value.

Specified by:
addDateHeader in interface HttpServletResponse
Overrides:
addDateHeader in class HttpServletResponseWrapper
Parameters:
name - Name of the header to set
value - Date value to be set

setStatus

public void setStatus(int sc)
Set the HTTP status to be returned with this response.

Specified by:
setStatus in interface HttpServletResponse
Overrides:
setStatus in class HttpServletResponseWrapper

sendError

public void sendError(int status)
               throws java.io.IOException
Send an error response with the specified status and a default message.

Specified by:
sendError in interface HttpServletResponse
Overrides:
sendError in class HttpServletResponseWrapper
Parameters:
status - HTTP status code to send
Throws:
java.lang.IllegalStateException - if this response has already been committed
java.io.IOException - if an input/output error occurs

sendError

public void sendError(int status,
                      java.lang.String message)
               throws java.io.IOException
Send an error response with the specified status and message.

Specified by:
sendError in interface HttpServletResponse
Overrides:
sendError in class HttpServletResponseWrapper
Parameters:
status - HTTP status code to send
message - Corresponding message to send
Throws:
java.lang.IllegalStateException - if this response has already been committed
java.io.IOException - if an input/output error occurs

isError

public boolean isError()
has the response been set to error


getExpiresDateHeader

public java.lang.Long getExpiresDateHeader()
return the Expires: date header value


cacheResponse

public HttpCacheEntry cacheResponse()
                             throws java.io.IOException
called by doFilter to cache the response that was just sent out

Throws:
java.io.IOException

clear

public void clear()
clear the contents of this wrapper


SunONE Application Server v8.0 PE

Submit a bug or feature

Copyright 2003 Sun Microsystems, Inc. All rights reserved.