Package org.apache.catalina.ssi
Class ResponseIncludeWrapper
- java.lang.Object
-
- jakarta.servlet.ServletResponseWrapper
-
- jakarta.servlet.http.HttpServletResponseWrapper
-
- org.apache.catalina.ssi.ResponseIncludeWrapper
-
- All Implemented Interfaces:
HttpServletResponse
,ServletResponse
public class ResponseIncludeWrapper extends HttpServletResponseWrapper
An HttpServletResponseWrapper, used fromSSIServletExternalResolver
- Author:
- Bip Thelin, David Becker
-
-
Field Summary
Fields Modifier and Type Field Description protected ServletOutputStream
captureServletOutputStream
Our ServletOutputStreamprotected long
lastModified
protected java.io.PrintWriter
printWriter
protected ServletOutputStream
servletOutputStream
-
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 ResponseIncludeWrapper(HttpServletResponse response, ServletOutputStream captureServletOutputStream)
Initialize our wrapper with the current HttpServletResponse and ServletOutputStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDateHeader(java.lang.String name, long value)
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.void
flushOutputStreamOrWriter()
Flush the servletOutputStream or printWriter ( only one will be non-null ) This must be called after a requestDispatcher.include, since we can't assume that the included servlet flushed its stream.long
getLastModified()
Returns the value of thelast-modified
header field.ServletOutputStream
getOutputStream()
Return an OutputStream, throws and exception if a printwriter already been returned.java.io.PrintWriter
getWriter()
Return a printwriter, throws and exception if an OutputStream already been returned.void
setDateHeader(java.lang.String name, long value)
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.-
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, reset, 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, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale
-
-
-
-
Field Detail
-
lastModified
protected long lastModified
-
captureServletOutputStream
protected final ServletOutputStream captureServletOutputStream
Our ServletOutputStream
-
servletOutputStream
protected ServletOutputStream servletOutputStream
-
printWriter
protected java.io.PrintWriter printWriter
-
-
Constructor Detail
-
ResponseIncludeWrapper
public ResponseIncludeWrapper(HttpServletResponse response, ServletOutputStream captureServletOutputStream)
Initialize our wrapper with the current HttpServletResponse and ServletOutputStream.- Parameters:
response
- The response to usecaptureServletOutputStream
- The ServletOutputStream to use
-
-
Method Detail
-
flushOutputStreamOrWriter
public void flushOutputStreamOrWriter() throws java.io.IOException
Flush the servletOutputStream or printWriter ( only one will be non-null ) This must be called after a requestDispatcher.include, since we can't assume that the included servlet flushed its stream.- Throws:
java.io.IOException
- an IO error occurred
-
getWriter
public java.io.PrintWriter getWriter() throws java.io.IOException
Return a printwriter, throws and exception if an OutputStream already been returned.- Specified by:
getWriter
in interfaceServletResponse
- Overrides:
getWriter
in classServletResponseWrapper
- Returns:
- a PrintWriter object
- Throws:
java.io.IOException
- if the outputstream already been called- See Also:
ServletResponse.getOutputStream()
,ServletResponse.setCharacterEncoding(java.lang.String)
-
getOutputStream
public ServletOutputStream getOutputStream() throws java.io.IOException
Return an OutputStream, throws and exception if a printwriter already been returned.- Specified by:
getOutputStream
in interfaceServletResponse
- Overrides:
getOutputStream
in classServletResponseWrapper
- Returns:
- an OutputStream object
- Throws:
java.io.IOException
- if the printwriter already been called- See Also:
ServletResponse.getWriter()
-
getLastModified
public long getLastModified()
Returns the value of thelast-modified
header field. The result is the number of milliseconds since January 1, 1970 GMT.- Returns:
- the date the resource referenced by this
ResponseIncludeWrapper
was last modified, or -1 if not known.
-
addDateHeader
public void addDateHeader(java.lang.String name, long value)
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 setvalue
- 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)
-
setDateHeader
public void setDateHeader(java.lang.String name, long value)
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 setvalue
- 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)
-
-