## org.apache.catalina.ssi
Class ResponseIncludeWrapper

    java.lang.Object
      javax.servlet.ServletResponseWrapper
          javax.servlet.http.HttpServletResponseWrapper
              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: 1.2 $, $Date: 2004/08/26 21:39:40 $
Author:
  Bip Thelin

Field Summary
`protected javax.servlet.ServletOutputStream` `originalServletOutputStream` Our ServletOutputStream
`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_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.http.HttpServletResponse res, javax.servlet.ServletOutputStream originalServletOutputStream)` Initialize our wrapper with the current HttpServletResponse and ServletOutputStream.

Method Summary
`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.
`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.

Methods inherited from class javax.servlet.http.HttpServletResponseWrapper
`addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus`

Methods inherited from class javax.servlet.ServletResponseWrapper
`flushBuffer, getBufferSize, getCharacterEncoding, getLocale, getResponse, isCommitted, reset, resetBuffer, setBufferSize, setContentLength, 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 javax.servlet.ServletResponse
`flushBuffer, getBufferSize, getCharacterEncoding, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setContentLength, setContentType, setLocale`

Field Detail

### originalServletOutputStream

    protected javax.servlet.ServletOutputStream originalServletOutputStream

  Our ServletOutputStream

### servletOutputStream

    protected javax.servlet.ServletOutputStream servletOutputStream

### printWriter

    protected java.io.PrintWriter printWriter

Constructor Detail

### ResponseIncludeWrapper

    public ResponseIncludeWrapper(javax.servlet.http.HttpServletResponse res,
                                  javax.servlet.ServletOutputStream originalServletOutputStream)

  Initialize our wrapper with the current HttpServletResponse and ServletOutputStream.

Parameters:
  `res` - The HttpServletResponse 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.

  Returns:
    a PrintWriter object
  Throws:
    `java.io.IOException` - if the outputstream already been called

### getOutputStream

    public javax.servlet.ServletOutputStream getOutputStream()
                                                      throws java.io.IOException

  Return a OutputStream, throws and exception if a printwriter already been returned.

  Returns:
    a OutputStream object
  Throws:
    `java.io.IOException` - if the printwriter already been called

Copyright ? 2000-2002 Apache Software Foundation. All Rights Reserved.