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: 708160 $, $Date: 2008-10-27 05:56:37 -0700 (Mon, 27 Oct 2008) $
Author:
Bip Thelin, David Becker

Field Summary
protected  javax.servlet.ServletOutputStream captureServletOutputStream
          Our ServletOutputStream
protected  long lastModified
           
protected  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(String name, long value)
           
 void addHeader(String name, String value)
           
 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.
 javax.servlet.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)
           
 void setHeader(String name, String value)
           
 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, sendError, sendError, sendRedirect, setIntHeader, setStatus, setStatus
 
Methods inherited from class javax.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getLocale, getResponse, isCommitted, 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 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 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 javax.servlet.ServletResponse
Overrides:
getWriter in class javax.servlet.ServletResponseWrapper
Returns:
a PrintWriter object
Throws:
IOException - if the outputstream already been called

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
                                                  throws 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:
IOException - if the printwriter already been called

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 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(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

addDateHeader

public void addDateHeader(String name,
                          long value)
Specified by:
addDateHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
addDateHeader in class javax.servlet.http.HttpServletResponseWrapper

addHeader

public void addHeader(String name,
                      String value)
Specified by:
addHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
addHeader in class javax.servlet.http.HttpServletResponseWrapper

setDateHeader

public void setDateHeader(String name,
                          long value)
Specified by:
setDateHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
setDateHeader in class javax.servlet.http.HttpServletResponseWrapper

setHeader

public void setHeader(String name,
                      String value)
Specified by:
setHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
setHeader in class javax.servlet.http.HttpServletResponseWrapper


Copyright © 2003-2009 The Apache Software Foundation. All Rights Reserved.