Apache Tomcat 7.0.37

org.apache.catalina.filters
Class ExpiresFilter.XHttpServletResponse

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by org.apache.catalina.filters.ExpiresFilter.XHttpServletResponse
All Implemented Interfaces:
HttpServletResponse, ServletResponse
Enclosing class:
ExpiresFilter

public class ExpiresFilter.XHttpServletResponse
extends HttpServletResponseWrapper

Wrapping extension of the HttpServletResponse to yrap the "Start Write Response Body" event.

For performance optimization : this extended response holds the lastModifiedHeader and cacheControlHeader values access to the slow HttpServletResponseWrapper.getHeader(String) and to spare the string to date to long conversion.


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
ExpiresFilter.XHttpServletResponse(HttpServletRequest request, HttpServletResponse response)
           
 
Method Summary
 void addDateHeader(String name, long date)
          The default behavior of this method is to call addDateHeader(String name, long date) on the wrapped response object.
 void addHeader(String name, String value)
          The default behavior of this method is to return addHeader(String name, String value) on the wrapped response object.
 String getCacheControlHeader()
           
 long getLastModifiedHeader()
           
 ServletOutputStream getOutputStream()
          The default behavior of this method is to return getOutputStream() on the wrapped response object.
 PrintWriter getWriter()
          The default behavior of this method is to return getWriter() on the wrapped response object.
 boolean isLastModifiedHeaderSet()
           
 boolean isWriteResponseBodyStarted()
           
 void reset()
          The default behavior of this method is to call reset() on the wrapped response object.
 void setDateHeader(String name, long date)
          The default behavior of this method is to call setDateHeader(String name, long date) on the wrapped response object.
 void setHeader(String name, String value)
          The default behavior of this method is to return setHeader(String name, String value) on the wrapped response object.
 void setWriteResponseBodyStarted(boolean writeResponseBodyStarted)
           
 
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
addCookie, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, sendError, sendError, sendRedirect, setIntHeader, setStatus, setStatus
 
Methods inherited from class javax.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, 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
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentType, setLocale
 

Constructor Detail

ExpiresFilter.XHttpServletResponse

public ExpiresFilter.XHttpServletResponse(HttpServletRequest request,
                                          HttpServletResponse response)
Method Detail

addDateHeader

public void addDateHeader(String name,
                          long date)
Description copied from class: javax.servlet.http.HttpServletResponseWrapper
The default behavior of this method is to call addDateHeader(String name, long date) on the wrapped response object.

Specified by:
addDateHeader in interface HttpServletResponse
Overrides:
addDateHeader in class HttpServletResponseWrapper
Parameters:
name - the name of the header to set
date - the additional date value
See Also:
HttpServletResponse.setDateHeader(java.lang.String, long)

addHeader

public void addHeader(String name,
                      String value)
Description copied from class: javax.servlet.http.HttpServletResponseWrapper
The default behavior of this method is to return addHeader(String name, String value) on the wrapped response object.

Specified by:
addHeader in interface HttpServletResponse
Overrides:
addHeader in class HttpServletResponseWrapper
Parameters:
name - the name of the header
value - the additional header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)
See Also:
HttpServletResponse.setHeader(java.lang.String, java.lang.String)

getCacheControlHeader

public String getCacheControlHeader()

getLastModifiedHeader

public long getLastModifiedHeader()

getOutputStream

public ServletOutputStream getOutputStream()
                                    throws IOException
Description copied from class: javax.servlet.ServletResponseWrapper
The default behavior of this method is to return getOutputStream() on the wrapped response object.

Specified by:
getOutputStream in interface ServletResponse
Overrides:
getOutputStream in class ServletResponseWrapper
Returns:
a ServletOutputStream for writing binary data
Throws:
IOException - if an input or output exception occurred
See Also:
ServletResponse.getWriter()

getWriter

public PrintWriter getWriter()
                      throws IOException
Description copied from class: javax.servlet.ServletResponseWrapper
The default behavior of this method is to return getWriter() on the wrapped response object.

Specified by:
getWriter in interface ServletResponse
Overrides:
getWriter in class ServletResponseWrapper
Returns:
a PrintWriter object that can return character data to the client
Throws:
UnsupportedEncodingException - if the character encoding returned by getCharacterEncoding cannot be used
IOException - if an input or output exception occurred
See Also:
ServletResponse.getOutputStream(), ServletResponse.setCharacterEncoding(java.lang.String)

isLastModifiedHeaderSet

public boolean isLastModifiedHeaderSet()

isWriteResponseBodyStarted

public boolean isWriteResponseBodyStarted()

reset

public void reset()
Description copied from class: javax.servlet.ServletResponseWrapper
The default behavior of this method is to call reset() on the wrapped response object.

Specified by:
reset in interface ServletResponse
Overrides:
reset in class ServletResponseWrapper
See Also:
ServletResponse.setBufferSize(int), ServletResponse.getBufferSize(), ServletResponse.flushBuffer(), ServletResponse.isCommitted()

setDateHeader

public void setDateHeader(String name,
                          long date)
Description copied from class: javax.servlet.http.HttpServletResponseWrapper
The default behavior of this method is to call setDateHeader(String name, long date) on the wrapped response object.

Specified by:
setDateHeader in interface HttpServletResponse
Overrides:
setDateHeader in class HttpServletResponseWrapper
Parameters:
name - the name of the header to set
date - the assigned date value
See Also:
HttpServletResponse.containsHeader(java.lang.String), HttpServletResponse.addDateHeader(java.lang.String, long)

setHeader

public void setHeader(String name,
                      String value)
Description copied from class: javax.servlet.http.HttpServletResponseWrapper
The default behavior of this method is to return setHeader(String name, String value) on the wrapped response object.

Specified by:
setHeader in interface HttpServletResponse
Overrides:
setHeader in class HttpServletResponseWrapper
Parameters:
name - the name of the header
value - the header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)
See Also:
HttpServletResponse.containsHeader(java.lang.String), HttpServletResponse.addHeader(java.lang.String, java.lang.String)

setWriteResponseBodyStarted

public void setWriteResponseBodyStarted(boolean writeResponseBodyStarted)

Apache Tomcat 7.0.37

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.