Package org.apache.catalina.filters
Class ExpiresFilter.XHttpServletResponse
- java.lang.Object
-
- jakarta.servlet.ServletResponseWrapper
-
- jakarta.servlet.http.HttpServletResponseWrapper
-
- 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
andcacheControlHeader
values access to the slowHttpServletResponseWrapper.getHeader(String)
and to spare thestring
todate
tolong
conversion.
-
-
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 XHttpServletResponse(HttpServletRequest request, HttpServletResponse response)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDateHeader(java.lang.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(java.lang.String name, java.lang.String value)
The default behavior of this method is to return addHeader(String name, String value) on the wrapped response object.java.lang.String
getCacheControlHeader()
long
getLastModifiedHeader()
ServletOutputStream
getOutputStream()
The default behavior of this method is to return getOutputStream() on the wrapped response object.java.io.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(java.lang.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(java.lang.String name, java.lang.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 jakarta.servlet.http.HttpServletResponseWrapper
addCookie, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, sendError, sendError, sendRedirect, setIntHeader, setStatus, setStatus, setTrailerFields
-
Methods inherited from class jakarta.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, 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 jakarta.servlet.ServletResponse
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale
-
-
-
-
Constructor Detail
-
XHttpServletResponse
public XHttpServletResponse(HttpServletRequest request, HttpServletResponse response)
-
-
Method Detail
-
addDateHeader
public void addDateHeader(java.lang.String name, long date)
Description copied from class:jakarta.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 interfaceHttpServletResponse
- Overrides:
addDateHeader
in classHttpServletResponseWrapper
- Parameters:
name
- the name of the header to setdate
- the additional date value- See Also:
HttpServletResponse.setDateHeader(java.lang.String, long)
-
addHeader
public void addHeader(java.lang.String name, java.lang.String value)
Description copied from class:jakarta.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 interfaceHttpServletResponse
- Overrides:
addHeader
in classHttpServletResponseWrapper
- Parameters:
name
- the name of the headervalue
- 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 java.lang.String getCacheControlHeader()
-
getLastModifiedHeader
public long getLastModifiedHeader()
-
getOutputStream
public ServletOutputStream getOutputStream() throws java.io.IOException
Description copied from class:jakarta.servlet.ServletResponseWrapper
The default behavior of this method is to return getOutputStream() on the wrapped response object.- Specified by:
getOutputStream
in interfaceServletResponse
- Overrides:
getOutputStream
in classServletResponseWrapper
- Returns:
- a
ServletOutputStream
for writing binary data - Throws:
java.io.IOException
- if an input or output exception occurred- See Also:
ServletResponse.getWriter()
-
getWriter
public java.io.PrintWriter getWriter() throws java.io.IOException
Description copied from class:jakarta.servlet.ServletResponseWrapper
The default behavior of this method is to return getWriter() on the wrapped response object.- Specified by:
getWriter
in interfaceServletResponse
- Overrides:
getWriter
in classServletResponseWrapper
- Returns:
- a
PrintWriter
object that can return character data to the client - Throws:
java.io.UnsupportedEncodingException
- if the character encoding returned bygetCharacterEncoding
cannot be usedjava.io.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:jakarta.servlet.ServletResponseWrapper
The default behavior of this method is to call reset() on the wrapped response object.- Specified by:
reset
in interfaceServletResponse
- Overrides:
reset
in classServletResponseWrapper
- See Also:
ServletResponse.setBufferSize(int)
,ServletResponse.getBufferSize()
,ServletResponse.flushBuffer()
,ServletResponse.isCommitted()
-
setDateHeader
public void setDateHeader(java.lang.String name, long date)
Description copied from class:jakarta.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 interfaceHttpServletResponse
- Overrides:
setDateHeader
in classHttpServletResponseWrapper
- Parameters:
name
- the name of the header to setdate
- the assigned date value- See Also:
HttpServletResponse.containsHeader(java.lang.String)
,HttpServletResponse.addDateHeader(java.lang.String, long)
-
setHeader
public void setHeader(java.lang.String name, java.lang.String value)
Description copied from class:jakarta.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 interfaceHttpServletResponse
- Overrides:
setHeader
in classHttpServletResponseWrapper
- Parameters:
name
- the name of the headervalue
- 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)
-
-