org.apache.catalina.connector
Class ResponseBase

java.lang.Object
  |
  +--org.apache.catalina.connector.ResponseBase
All Implemented Interfaces:
Response, javax.servlet.ServletResponse
Direct Known Subclasses:
HttpResponseBase

public abstract class ResponseBase
extends java.lang.Object
implements Response, javax.servlet.ServletResponse

Convenience base implementation of the Response interface, which can be used for the Response implementation required by most Connectors. Only the connector-specific methods need to be implemented.

Version:
$Revision: 1.16.2.6 $ $Date: 2002/02/21 22:13:33 $
Author:
Craig R. McClanahan, Remy Maucherat

Field Summary
protected  boolean appCommitted
          Has this response been committed by the application yet?
protected  byte[] buffer
          The buffer through which all of our output bytes are passed.
protected  int bufferCount
          The number of data bytes currently in the buffer.
protected  boolean committed
          Has this response been committed yet?
protected  Connector connector
          The Connector through which this Response is returned.
protected  int contentCount
          The actual number of bytes written to this Response.
protected  int contentLength
          The content length associated with this Response.
protected  java.lang.String contentType
          The content type associated with this Response.
protected  Context context
          The Context within which this Response is being produced.
protected  java.lang.String encoding
          The character encoding associated with this Response.
protected  boolean error
          Error flag.
protected  ResponseFacade facade
          The facade associated with this response.
protected  boolean included
          Are we currently processing inside a RequestDispatcher.include()?
protected static java.lang.String info
          Descriptive information about this Response implementation.
protected  java.util.Locale locale
          The Locale associated with this Response.
protected  java.io.OutputStream output
          The output stream associated with this Response.
protected  Request request
          The Request with which this Response is associated.
protected static StringManager sm
          The string manager for this package.
protected  javax.servlet.ServletOutputStream stream
          The ServletOutputStream that has been returned by getOutputStream(), if any.
protected  boolean suspended
          Has this response output been suspended?
protected  java.io.PrintWriter writer
          The PrintWriter that has been returned by getWriter(), if any.
 
Constructor Summary
ResponseBase()
           
 
Method Summary
 javax.servlet.ServletOutputStream createOutputStream()
          Create and return a ServletOutputStream to write the content associated with this Response.
 void finishResponse()
          Perform whatever actions are required to flush and close the output stream or writer, in a single operation.
 void flushBuffer()
          Flush the buffer and commit this response.
 int getBufferSize()
          Return the actual buffer size used for this Response.
 java.lang.String getCharacterEncoding()
          Return the character encoding used for this Response.
 Connector getConnector()
          Return the Connector through which this Response will be transmitted.
 int getContentCount()
          Return the number of bytes actually written to the output stream.
 int getContentLength()
          Return the content length that was set or calculated for this Response.
 java.lang.String getContentType()
          Return the content type that was set or calculated for this response, or null if no content type was set.
 Context getContext()
          Return the Context with which this Response is associated.
 boolean getIncluded()
          Return the "processing inside an include" flag.
 java.lang.String getInfo()
          Return descriptive information about this Response implementation and the corresponding version number, in the format <description>/<version>.
 java.util.Locale getLocale()
          Return the Locale assigned to this response.
 javax.servlet.ServletOutputStream getOutputStream()
          Return the servlet output stream associated with this Response.
 java.io.PrintWriter getReporter()
          Return a PrintWriter that can be used to render error messages, regardless of whether a stream or writer has already been acquired.
 Request getRequest()
          Return the Request with which this Response is associated.
 javax.servlet.ServletResponse getResponse()
          Return the ServletResponse for which this object is the facade.
 java.io.OutputStream getStream()
          Return the output stream associated with this Response.
 java.io.PrintWriter getWriter()
          Return the writer associated with this Response.
 boolean isAppCommitted()
          Application commit flag accessor.
 boolean isCommitted()
          Has the output of this response already been committed?
 boolean isError()
          Error flag accessor.
 boolean isSuspended()
          Suspended flag accessor.
 void recycle()
          Release all object references, and initialize instance variables, in preparation for reuse of this object.
 void reset()
          Clear any content written to the buffer.
 void resetBuffer()
          Reset the data buffer but not any status or header information.
 void setAppCommitted(boolean appCommitted)
          Set the application commit flag.
 void setBufferSize(int size)
          Set the buffer size to be used for this Response.
 void setConnector(Connector connector)
          Set the Connector through which this Response will be transmitted.
 void setContentLength(int length)
          Set the content length (in bytes) for this Response.
 void setContentType(java.lang.String type)
          Set the content type for this Response.
 void setContext(Context context)
          Set the Context with which this Response is associated.
 void setError()
          Set the error flag.
 void setIncluded(boolean included)
          Set the "processing inside an include" flag.
 void setLocale(java.util.Locale locale)
          Set the Locale that is appropriate for this response, including setting the appropriate character encoding.
 void setRequest(Request request)
          Set the Request with which this Response is associated.
 void setStream(java.io.OutputStream stream)
          Set the output stream associated with this Response.
 void setSuspended(boolean suspended)
          Set the suspended flag.
 void write(byte[] b)
          Write b.length bytes from the specified byte array to our output stream.
 void write(byte[] b, int off, int len)
          Write len bytes from the specified byte array, starting at the specified offset, to our output stream.
 void write(int b)
          Write the specified byte to our output stream, flushing if necessary.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

appCommitted

protected boolean appCommitted
Has this response been committed by the application yet?


buffer

protected byte[] buffer
The buffer through which all of our output bytes are passed.


bufferCount

protected int bufferCount
The number of data bytes currently in the buffer.


committed

protected boolean committed
Has this response been committed yet?


connector

protected Connector connector
The Connector through which this Response is returned.


contentCount

protected int contentCount
The actual number of bytes written to this Response.


contentLength

protected int contentLength
The content length associated with this Response.


contentType

protected java.lang.String contentType
The content type associated with this Response.


context

protected Context context
The Context within which this Response is being produced.


encoding

protected java.lang.String encoding
The character encoding associated with this Response.


facade

protected ResponseFacade facade
The facade associated with this response.


included

protected boolean included
Are we currently processing inside a RequestDispatcher.include()?


info

protected static final java.lang.String info
Descriptive information about this Response implementation.

See Also:
Constant Field Values

locale

protected java.util.Locale locale
The Locale associated with this Response.


output

protected java.io.OutputStream output
The output stream associated with this Response.


request

protected Request request
The Request with which this Response is associated.


sm

protected static StringManager sm
The string manager for this package.


stream

protected javax.servlet.ServletOutputStream stream
The ServletOutputStream that has been returned by getOutputStream(), if any.


suspended

protected boolean suspended
Has this response output been suspended?


writer

protected java.io.PrintWriter writer
The PrintWriter that has been returned by getWriter(), if any.


error

protected boolean error
Error flag. True if the response is an error report.

Constructor Detail

ResponseBase

public ResponseBase()
Method Detail

setAppCommitted

public void setAppCommitted(boolean appCommitted)
Set the application commit flag.

Specified by:
setAppCommitted in interface Response
Parameters:
appCommitted - The new application committed flag value

isAppCommitted

public boolean isAppCommitted()
Application commit flag accessor.

Specified by:
isAppCommitted in interface Response

getConnector

public Connector getConnector()
Return the Connector through which this Response will be transmitted.

Specified by:
getConnector in interface Response

setConnector

public void setConnector(Connector connector)
Set the Connector through which this Response will be transmitted.

Specified by:
setConnector in interface Response
Parameters:
connector - The new connector

getContentCount

public int getContentCount()
Return the number of bytes actually written to the output stream.

Specified by:
getContentCount in interface Response

getContext

public Context getContext()
Return the Context with which this Response is associated.

Specified by:
getContext in interface Response

setContext

public void setContext(Context context)
Set the Context with which this Response is associated. This should be called as soon as the appropriate Context is identified.

Specified by:
setContext in interface Response
Parameters:
context - The associated Context

getIncluded

public boolean getIncluded()
Return the "processing inside an include" flag.

Specified by:
getIncluded in interface Response

setIncluded

public void setIncluded(boolean included)
Set the "processing inside an include" flag.

Specified by:
setIncluded in interface Response
Parameters:
included - true if we are currently inside a RequestDispatcher.include(), else false

getInfo

public java.lang.String getInfo()
Return descriptive information about this Response implementation and the corresponding version number, in the format <description>/<version>.

Specified by:
getInfo in interface Response

getRequest

public Request getRequest()
Return the Request with which this Response is associated.

Specified by:
getRequest in interface Response

setRequest

public void setRequest(Request request)
Set the Request with which this Response is associated.

Specified by:
setRequest in interface Response
Parameters:
request - The new associated request

getResponse

public javax.servlet.ServletResponse getResponse()
Return the ServletResponse for which this object is the facade.

Specified by:
getResponse in interface Response

getStream

public java.io.OutputStream getStream()
Return the output stream associated with this Response.

Specified by:
getStream in interface Response

setStream

public void setStream(java.io.OutputStream stream)
Set the output stream associated with this Response.

Specified by:
setStream in interface Response
Parameters:
stream - The new output stream

setSuspended

public void setSuspended(boolean suspended)
Set the suspended flag.

Specified by:
setSuspended in interface Response
Parameters:
suspended - The new suspended flag value

isSuspended

public boolean isSuspended()
Suspended flag accessor.

Specified by:
isSuspended in interface Response

setError

public void setError()
Set the error flag.

Specified by:
setError in interface Response

isError

public boolean isError()
Error flag accessor.

Specified by:
isError in interface Response

createOutputStream

public javax.servlet.ServletOutputStream createOutputStream()
                                                     throws java.io.IOException
Create and return a ServletOutputStream to write the content associated with this Response.

Specified by:
createOutputStream in interface Response
Throws:
java.io.IOException - if an input/output error occurs

finishResponse

public void finishResponse()
                    throws java.io.IOException
Perform whatever actions are required to flush and close the output stream or writer, in a single operation.

Specified by:
finishResponse in interface Response
Throws:
java.io.IOException - if an input/output error occurs

getContentLength

public int getContentLength()
Return the content length that was set or calculated for this Response.

Specified by:
getContentLength in interface Response

getContentType

public java.lang.String getContentType()
Return the content type that was set or calculated for this response, or null if no content type was set.

Specified by:
getContentType in interface Response

getReporter

public java.io.PrintWriter getReporter()
Return a PrintWriter that can be used to render error messages, regardless of whether a stream or writer has already been acquired.

Specified by:
getReporter in interface Response
Returns:
Writer which can be used for error reports. If the response is not an error report returned using sendError or triggered by an unexpected exception thrown during the servlet processing (and only in that case), null will be returned if the response stream has already been used.

recycle

public void recycle()
Release all object references, and initialize instance variables, in preparation for reuse of this object.

Specified by:
recycle in interface Response

write

public void write(int b)
           throws java.io.IOException
Write the specified byte to our output stream, flushing if necessary.

Parameters:
b - The byte to be written
Throws:
java.io.IOException - if an input/output error occurs

write

public void write(byte[] b)
           throws java.io.IOException
Write b.length bytes from the specified byte array to our output stream. Flush the output stream as necessary.

Parameters:
b - The byte array to be written
Throws:
java.io.IOException - if an input/output error occurs

write

public void write(byte[] b,
                  int off,
                  int len)
           throws java.io.IOException
Write len bytes from the specified byte array, starting at the specified offset, to our output stream. Flush the output stream as necessary.

Parameters:
b - The byte array containing the bytes to be written
off - Zero-relative starting offset of the bytes to be written
len - The number of bytes to be written
Throws:
java.io.IOException - if an input/output error occurs

flushBuffer

public void flushBuffer()
                 throws java.io.IOException
Flush the buffer and commit this response.

Specified by:
flushBuffer in interface javax.servlet.ServletResponse
Throws:
java.io.IOException - if an input/output error occurs

getBufferSize

public int getBufferSize()
Return the actual buffer size used for this Response.

Specified by:
getBufferSize in interface javax.servlet.ServletResponse

getCharacterEncoding

public java.lang.String getCharacterEncoding()
Return the character encoding used for this Response.

Specified by:
getCharacterEncoding in interface javax.servlet.ServletResponse

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
                                                  throws java.io.IOException
Return the servlet output stream associated with this Response.

Specified by:
getOutputStream in interface javax.servlet.ServletResponse
Throws:
java.lang.IllegalStateException - if getWriter has already been called for this response
java.io.IOException - if an input/output error occurs

getLocale

public java.util.Locale getLocale()
Return the Locale assigned to this response.

Specified by:
getLocale in interface javax.servlet.ServletResponse

getWriter

public java.io.PrintWriter getWriter()
                              throws java.io.IOException
Return the writer associated with this Response.

Specified by:
getWriter in interface javax.servlet.ServletResponse
Throws:
java.lang.IllegalStateException - if getOutputStream has already been called for this response
java.io.IOException - if an input/output error occurs

isCommitted

public boolean isCommitted()
Has the output of this response already been committed?

Specified by:
isCommitted in interface javax.servlet.ServletResponse

reset

public void reset()
Clear any content written to the buffer.

Specified by:
reset in interface javax.servlet.ServletResponse
Throws:
java.lang.IllegalStateException - if this response has already been committed

resetBuffer

public void resetBuffer()
Reset the data buffer but not any status or header information.

Specified by:
resetBuffer in interface Response
Throws:
java.lang.IllegalStateException - if the response has already been committed

setBufferSize

public void setBufferSize(int size)
Set the buffer size to be used for this Response.

Specified by:
setBufferSize in interface javax.servlet.ServletResponse
Parameters:
size - The new buffer size
Throws:
java.lang.IllegalStateException - if this method is called after output has been committed for this response

setContentLength

public void setContentLength(int length)
Set the content length (in bytes) for this Response.

Specified by:
setContentLength in interface javax.servlet.ServletResponse
Parameters:
length - The new content length

setContentType

public void setContentType(java.lang.String type)
Set the content type for this Response.

Specified by:
setContentType in interface javax.servlet.ServletResponse
Parameters:
type - The new content type

setLocale

public void setLocale(java.util.Locale locale)
Set the Locale that is appropriate for this response, including setting the appropriate character encoding.

Specified by:
setLocale in interface javax.servlet.ServletResponse
Parameters:
locale - The new locale


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