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:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class ResponseIncludeWrapper
extends javax.servlet.http.HttpServletResponseWrapper

A HttpServletResponseWrapper, used from SSIServletExternalResolver

Version:
$Revision: 798 $, $Date: 2008-09-30 17:56:04 +0200 (Tue, 30 Sep 2008) $
Author:
Bip Thelin, David Becker

Field Summary
protected  javax.servlet.ServletOutputStream captureServletOutputStream
          Our ServletOutputStream
protected  long lastModified
           
protected  java.io.PrintWriter printWriter
           
protected  javax.servlet.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(javax.servlet.ServletContext context, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.ServletOutputStream captureServletOutputStream)
          Initialize our wrapper with the current HttpServletResponse and ServletOutputStream.
 
Method Summary
 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.
 java.lang.String getContentType()
          Returns the value of the content-type header field.
 long getLastModified()
          Returns the value of the last-modified header field.
 javax.servlet.ServletOutputStream getOutputStream()
          Return a OutputStream, throws and exception if a printwriter already been returned.
 java.io.PrintWriter getWriter()
          Return a printwriter, throws and exception if a OutputStream already been returned.
 void setContentType(java.lang.String mime)
          Sets the value of the content-type header field.
 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.
 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 javax.servlet.ServletOutputStream captureServletOutputStream
Our ServletOutputStream


servletOutputStream

protected javax.servlet.ServletOutputStream servletOutputStream

printWriter

protected java.io.PrintWriter printWriter
Constructor Detail

ResponseIncludeWrapper

public ResponseIncludeWrapper(javax.servlet.ServletContext context,
                              javax.servlet.http.HttpServletRequest request,
                              javax.servlet.http.HttpServletResponse response,
                              javax.servlet.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 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

getWriter

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

Specified by:
getWriter in interface javax.servlet.ServletResponse
Overrides:
getWriter in class javax.servlet.ServletResponseWrapper
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 javax.servlet.ServletOutputStream getOutputStream()
                                                  throws java.io.IOException
Return a OutputStream, throws and exception if a printwriter already been returned.

Specified by:
getOutputStream in interface javax.servlet.ServletResponse
Overrides:
getOutputStream in class javax.servlet.ServletResponseWrapper
Returns:
a OutputStream object
Throws:
java.io.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 java.lang.String getContentType()
Returns the value of the content-type header field.

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

setContentType

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

Specified by:
setContentType in interface javax.servlet.ServletResponse
Overrides:
setContentType in class javax.servlet.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(java.lang.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 javax.servlet.http.HttpServletResponse
Overrides:
addDateHeader in class javax.servlet.http.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(java.lang.String name,
                      java.lang.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 javax.servlet.http.HttpServletResponse
Overrides:
addHeader in class javax.servlet.http.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(java.lang.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 javax.servlet.http.HttpServletResponse
Overrides:
setDateHeader in class javax.servlet.http.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(java.lang.String name,
                      java.lang.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 javax.servlet.http.HttpServletResponse
Overrides:
setHeader in class javax.servlet.http.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)


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