Package com.sun.appserv.web.cache.filter
Class CachingResponseWrapper
- java.lang.Object
-
- jakarta.servlet.ServletResponseWrapper
-
- jakarta.servlet.http.HttpServletResponseWrapper
-
- com.sun.appserv.web.cache.filter.CachingResponseWrapper
-
- All Implemented Interfaces:
jakarta.servlet.http.HttpServletResponse
,jakarta.servlet.ServletResponse
public class CachingResponseWrapper extends jakarta.servlet.http.HttpServletResponseWrapper
a wrapper to HttpServletResponse to cache the outbound headers and content- See Also:
and
,HttpServletResponse
-
-
Field Summary
-
Fields inherited from interface jakarta.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
Constructors Constructor Description CachingResponseWrapper(jakarta.servlet.http.HttpServletResponse response)
Constructs a response adaptor wrapping the given response.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCookie(jakarta.servlet.http.Cookie cookie)
The default behavior of this method is to call addCookie(Cookie cookie) on the wrapped response object.void
addDateHeader(String name, long value)
Add the specified date header to the specified value.void
addHeader(String name, String value)
Add the specified header to the specified value.void
addIntHeader(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 outvoid
clear()
clear the contents of this wrapperLong
getExpiresDateHeader()
return the Expires: date header valuejakarta.servlet.ServletOutputStream
getOutputStream()
Return the servlet output stream associated with this Response.PrintWriter
getWriter()
Return the writer associated with this Response.boolean
isError()
has the response been set to errorvoid
sendError(int status)
Send an error response with the specified status and a default message.void
sendError(int status, 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(String type)
Set the content type for this Response.void
setDateHeader(String name, long value)
Set the specified date header to the specified value.void
setHeader(String name, String value)
Set the specified header to the specified value.void
setIntHeader(String name, int value)
Set the specified integer header to the specified value.void
setLocale(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 jakarta.servlet.http.HttpServletResponseWrapper
containsHeader, encodeRedirectURL, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, sendRedirect, setTrailerFields
-
Methods inherited from class jakarta.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLengthLong, setResponse
-
-
-
-
Constructor Detail
-
CachingResponseWrapper
public CachingResponseWrapper(jakarta.servlet.http.HttpServletResponse response)
Constructs a response adaptor wrapping the given response.- Throws:
IllegalArgumentException
- if the response is null
-
-
Method Detail
-
getOutputStream
public jakarta.servlet.ServletOutputStream getOutputStream() throws IOException
Return the servlet output stream associated with this Response.- Specified by:
getOutputStream
in interfacejakarta.servlet.ServletResponse
- Overrides:
getOutputStream
in classjakarta.servlet.ServletResponseWrapper
- Throws:
IllegalStateException
- ifgetWriter
has already been called for this responseIOException
- if an input/output error occurs
-
getWriter
public PrintWriter getWriter() throws IOException
Return the writer associated with this Response.- Specified by:
getWriter
in interfacejakarta.servlet.ServletResponse
- Overrides:
getWriter
in classjakarta.servlet.ServletResponseWrapper
- Throws:
IllegalStateException
- ifgetOutputStream
has already been called for this responseIOException
- 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 interfacejakarta.servlet.ServletResponse
- Overrides:
setContentLength
in classjakarta.servlet.ServletResponseWrapper
- Parameters:
len
- The new content length
-
setContentType
public void setContentType(String type)
Set the content type for this Response.- Specified by:
setContentType
in interfacejakarta.servlet.ServletResponse
- Overrides:
setContentType
in classjakarta.servlet.ServletResponseWrapper
- Parameters:
type
- The new content type
-
setLocale
public void setLocale(Locale locale)
Set the Locale that is appropriate for this response, including setting the appropriate character encoding.- Specified by:
setLocale
in interfacejakarta.servlet.ServletResponse
- Overrides:
setLocale
in classjakarta.servlet.ServletResponseWrapper
- Parameters:
locale
- The new locale
-
addCookie
public void addCookie(jakarta.servlet.http.Cookie cookie)
The default behavior of this method is to call addCookie(Cookie cookie) on the wrapped response object.- Specified by:
addCookie
in interfacejakarta.servlet.http.HttpServletResponse
- Overrides:
addCookie
in classjakarta.servlet.http.HttpServletResponseWrapper
-
setHeader
public void setHeader(String name, String value)
Set the specified header to the specified value.- Specified by:
setHeader
in interfacejakarta.servlet.http.HttpServletResponse
- Overrides:
setHeader
in classjakarta.servlet.http.HttpServletResponseWrapper
- Parameters:
name
- Name of the header to setvalue
- Value to be set
-
setIntHeader
public void setIntHeader(String name, int value)
Set the specified integer header to the specified value.- Specified by:
setIntHeader
in interfacejakarta.servlet.http.HttpServletResponse
- Overrides:
setIntHeader
in classjakarta.servlet.http.HttpServletResponseWrapper
- Parameters:
name
- Name of the header to setvalue
- Integer value to be set
-
addHeader
public void addHeader(String name, String value)
Add the specified header to the specified value.- Specified by:
addHeader
in interfacejakarta.servlet.http.HttpServletResponse
- Overrides:
addHeader
in classjakarta.servlet.http.HttpServletResponseWrapper
- Parameters:
name
- Name of the header to setvalue
- Value to be set
-
addIntHeader
public void addIntHeader(String name, int value)
Add the specified integer header to the specified value.- Specified by:
addIntHeader
in interfacejakarta.servlet.http.HttpServletResponse
- Overrides:
addIntHeader
in classjakarta.servlet.http.HttpServletResponseWrapper
- Parameters:
name
- Name of the header to setvalue
- Integer value to be set
-
setDateHeader
public void setDateHeader(String name, long value)
Set the specified date header to the specified value.- Specified by:
setDateHeader
in interfacejakarta.servlet.http.HttpServletResponse
- Overrides:
setDateHeader
in classjakarta.servlet.http.HttpServletResponseWrapper
- Parameters:
name
- Name of the header to setvalue
- Date value to be set
-
addDateHeader
public void addDateHeader(String name, long value)
Add the specified date header to the specified value.- Specified by:
addDateHeader
in interfacejakarta.servlet.http.HttpServletResponse
- Overrides:
addDateHeader
in classjakarta.servlet.http.HttpServletResponseWrapper
- Parameters:
name
- Name of the header to setvalue
- 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 interfacejakarta.servlet.http.HttpServletResponse
- Overrides:
setStatus
in classjakarta.servlet.http.HttpServletResponseWrapper
- Parameters:
sc
- The new HTTP status
-
sendError
public void sendError(int status) throws IOException
Send an error response with the specified status and a default message.- Specified by:
sendError
in interfacejakarta.servlet.http.HttpServletResponse
- Overrides:
sendError
in classjakarta.servlet.http.HttpServletResponseWrapper
- Parameters:
status
- HTTP status code to send- Throws:
IllegalStateException
- if this response has already been committedIOException
- if an input/output error occurs
-
sendError
public void sendError(int status, String message) throws IOException
Send an error response with the specified status and message.- Specified by:
sendError
in interfacejakarta.servlet.http.HttpServletResponse
- Overrides:
sendError
in classjakarta.servlet.http.HttpServletResponseWrapper
- Parameters:
status
- HTTP status code to sendmessage
- Corresponding message to send- Throws:
IllegalStateException
- if this response has already been committedIOException
- if an input/output error occurs
-
isError
public boolean isError()
has the response been set to error
-
getExpiresDateHeader
public Long getExpiresDateHeader()
return the Expires: date header value
-
cacheResponse
public HttpCacheEntry cacheResponse() throws IOException
called by doFilter to cache the response that was just sent out- Returns:
- the entry with cached response headers and body.
- Throws:
IOException
-
clear
public void clear()
clear the contents of this wrapper
-
-