Apache Tomcat 7.0.28

org.apache.catalina.ssi
Class ResponseIncludeWrapper

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by org.apache.catalina.ssi.ResponseIncludeWrapper
All Implemented Interfaces:
HttpServletResponse, ServletResponse

public class ResponseIncludeWrapper
extends HttpServletResponseWrapper

A HttpServletResponseWrapper, used from SSIServletExternalResolver

Version:
$Id: ResponseIncludeWrapper.java 1043105 2010-12-07 15:42:32Z markt $
Author:
Bip Thelin, David Becker

Field Summary
protected  ServletOutputStream captureServletOutputStream
          Our ServletOutputStream
protected  long lastModified
           
protected  PrintWriter printWriter
           
protected  ServletOutputStream servletOutputStream
           
 
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
ResponseIncludeWrapper(ServletContext context, HttpServletRequest request, HttpServletResponse response, ServletOutputStream captureServletOutputStream)
          Initialize our wrapper with the current HttpServletResponse and ServletOutputStream.
 
Method Summary
 void addDateHeader(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(String name, 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.
 String getContentType()
          Returns the value of the content-type header field.
 long getLastModified()
          Returns the value of the last-modified header field.
 ServletOutputStream getOutputStream()
          Return a OutputStream, throws and exception if a printwriter already been returned.
 PrintWriter getWriter()
          Return a printwriter, throws and exception if a OutputStream already been returned.
 void setContentType(String mime)
          Sets the value of the content-type header field.
 void setDateHeader(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(String name, String value)
          The default behavior of this method is to return setHeader(String name, String value) on the wrapped response object.
 void setLastModified(long lastModified)
          Sets the value of the last-modified header field.
 
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, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, 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, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setLocale
 

Field Detail

lastModified

protected long lastModified

captureServletOutputStream

protected ServletOutputStream captureServletOutputStream
Our ServletOutputStream


servletOutputStream

protected ServletOutputStream servletOutputStream

printWriter

protected PrintWriter printWriter
Constructor Detail

ResponseIncludeWrapper

public ResponseIncludeWrapper(ServletContext context,
                              HttpServletRequest request,
                              HttpServletResponse response,
                              ServletOutputStream captureServletOutputStream)
Initialize our wrapper with the current HttpServletResponse and ServletOutputStream.

Parameters:
context - The servlet context
request - The HttpServletResponse to use
response - The response to use
captureServletOutputStream - The ServletOutputStream to use
Method Detail

flushOutputStreamOrWriter

public void flushOutputStreamOrWriter()
                               throws 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:
IOException

getWriter

public PrintWriter getWriter()
                      throws IOException
Return a printwriter, throws and exception if a OutputStream already been returned.

Specified by:
getWriter in interface ServletResponse
Overrides:
getWriter in class ServletResponseWrapper
Returns:
a PrintWriter object
Throws:
IOException - if the outputstream already been called
UnsupportedEncodingException - if the character encoding returned by getCharacterEncoding cannot be used
See Also:
ServletResponse.getOutputStream(), ServletResponse.setCharacterEncoding(java.lang.String)

getOutputStream

public ServletOutputStream getOutputStream()
                                    throws IOException
Return a OutputStream, throws and exception if a printwriter already been returned.

Specified by:
getOutputStream in interface ServletResponse
Overrides:
getOutputStream in class ServletResponseWrapper
Returns:
a OutputStream object
Throws:
IOException - if the printwriter already been called
See Also:
ServletResponse.getWriter()

getLastModified

public long getLastModified()
Returns the value of the last-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.

setLastModified

public void setLastModified(long lastModified)
Sets the value of the last-modified header field.

Parameters:
lastModified - The number of milliseconds since January 1, 1970 GMT.

getContentType

public String getContentType()
Returns the value of the content-type header field.

Specified by:
getContentType in interface ServletResponse
Overrides:
getContentType in class ServletResponseWrapper
Returns:
the content type of the resource referenced by this ResponseIncludeWrapper, or null if not known.

setContentType

public void setContentType(String mime)
Sets the value of the content-type header field.

Specified by:
setContentType in interface ServletResponse
Overrides:
setContentType in class ServletResponseWrapper
Parameters:
mime - a mime type
See Also:
ServletResponse.setLocale(java.util.Locale), ServletResponse.setCharacterEncoding(java.lang.String), ServletResponse.getOutputStream(), ServletResponse.getWriter()

addDateHeader

public void addDateHeader(String name,
                          long value)
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
value - 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)

setDateHeader

public void setDateHeader(String name,
                          long value)
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
value - 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)

Apache Tomcat 7.0.28

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