planetj.servlet.wrapper
Class WrappedHttpServletResponse

java.lang.Object
  |
  +--javax.servlet.ServletResponseWrapper
        |
        +--planetj.servlet.wrapper.HttpServletResponseWrapper
              |
              +--planetj.servlet.wrapper.WrappedHttpServletResponse
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class WrappedHttpServletResponse
extends HttpServletResponseWrapper

Stores data written to the response and allows it to be obtained later. Can be used to capture JSP HTML output.


Field Summary
 
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
WrappedHttpServletResponse(javax.servlet.http.HttpServletResponse wrapMe)
          Creates a response wrapper which buffers the output.
 
Method Summary
 void addCookie(javax.servlet.http.Cookie cookie)
           
 void addDateHeader(String name, long date)
           
 void addHeader(String name, String value)
           
 void addIntHeader(String name, int value)
           
 void flushBuffer()
           
 Reader getOutputAsReader()
          Provides the buffered output as a Reader.
 String getOutputAsString()
          Provides the buffered output as a String.
 javax.servlet.ServletOutputStream getOutputStream()
           
 PrintWriter getWriter()
           
 int outputSize()
           
 boolean prefersReader()
           
 void sendError(int sc)
          This actually sends to the real response and flags an error condition.
 void sendError(int sc, String msg)
          This actually sends to the real response and flags an error condition.
 void setContentLength(int len)
           
 void setContentType(String type)
           
 void setDateHeader(String name, long date)
           
 void setHeader(String name, String value)
           
 void setIntHeader(String name, int value)
           
 void setLocale(Locale loc)
           
 void setStatus(int sc)
           
 void setStatus(int sc, String sm)
           
 
Methods inherited from class planetj.servlet.wrapper.HttpServletResponseWrapper
containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, sendRedirect
 
Methods inherited from class javax.servlet.ServletResponseWrapper
getBufferSize, getCharacterEncoding, getLocale, getResponse, isCommitted, reset, resetBuffer, setBufferSize, setResponse
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.servlet.ServletResponse
getBufferSize, getCharacterEncoding, getLocale, isCommitted, reset, resetBuffer, setBufferSize
 

Constructor Detail

WrappedHttpServletResponse

public WrappedHttpServletResponse(javax.servlet.http.HttpServletResponse wrapMe)
Creates a response wrapper which buffers the output.

Method Detail

addCookie

public void addCookie(javax.servlet.http.Cookie cookie)
Specified by:
addCookie in interface javax.servlet.http.HttpServletResponse
Overrides:
addCookie in class HttpServletResponseWrapper
See Also:
ServletResponse#addCookie

addDateHeader

public void addDateHeader(String name,
                          long date)
Specified by:
addDateHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
addDateHeader in class HttpServletResponseWrapper
See Also:
ServletResponse#addDateHeader

addHeader

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

addIntHeader

public void addIntHeader(String name,
                         int value)
Specified by:
addIntHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
addIntHeader in class HttpServletResponseWrapper
See Also:
ServletResponse#addIntHeader

flushBuffer

public void flushBuffer()
                 throws IOException
Specified by:
flushBuffer in interface javax.servlet.ServletResponse
Overrides:
flushBuffer in class javax.servlet.ServletResponseWrapper
IOException
See Also:
ServletResponse.flushBuffer()

getOutputAsReader

public Reader getOutputAsReader()
                         throws UnsupportedEncodingException
Provides the buffered output as a Reader. If output was written using a ServletOutputStream, the charset defined in the content-type is used to decode the data. If no charset is set, the default encoding is assumed.

UnsupportedEncodingException

getOutputAsString

public String getOutputAsString()
                         throws UnsupportedEncodingException
Provides the buffered output as a String. If output was written using a ServletOutputStream, the charset defined in the content-type is used to decode the data. If no charset is set, the default encoding is assumed.

UnsupportedEncodingException

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
                                                  throws IOException
Specified by:
getOutputStream in interface javax.servlet.ServletResponse
Overrides:
getOutputStream in class javax.servlet.ServletResponseWrapper
IOException
See Also:
ServletResponse.getOutputStream()

getWriter

public PrintWriter getWriter()
                      throws IOException
Specified by:
getWriter in interface javax.servlet.ServletResponse
Overrides:
getWriter in class javax.servlet.ServletResponseWrapper
IOException
See Also:
ServletResponse.getWriter()

outputSize

public int outputSize()
Returns:
the amount of data written to the output stream.

prefersReader

public boolean prefersReader()
Returns:
true if it is more efficient to call getOutputAsReader() than getOutputAsString(). If false, getOutputAsString() should be used.

sendError

public void sendError(int sc)
               throws IOException
This actually sends to the real response and flags an error condition.

Specified by:
sendError in interface javax.servlet.http.HttpServletResponse
Overrides:
sendError in class HttpServletResponseWrapper
IOException
See Also:
ServletResponse#addIntHeader

sendError

public void sendError(int sc,
                      String msg)
               throws IOException
This actually sends to the real response and flags an error condition.

Specified by:
sendError in interface javax.servlet.http.HttpServletResponse
Overrides:
sendError in class HttpServletResponseWrapper
IOException
See Also:
ServletResponse#addIntHeader

setContentLength

public void setContentLength(int len)
Specified by:
setContentLength in interface javax.servlet.ServletResponse
Overrides:
setContentLength in class javax.servlet.ServletResponseWrapper
See Also:
ServletResponse.setContentLength(int)

setContentType

public void setContentType(String type)
Specified by:
setContentType in interface javax.servlet.ServletResponse
Overrides:
setContentType in class javax.servlet.ServletResponseWrapper
See Also:
ServletResponse.setContentType(java.lang.String)

setDateHeader

public void setDateHeader(String name,
                          long date)
Specified by:
setDateHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
setDateHeader in class HttpServletResponseWrapper
See Also:
ServletResponse#setDateHeader

setHeader

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

setIntHeader

public void setIntHeader(String name,
                         int value)
Specified by:
setIntHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
setIntHeader in class HttpServletResponseWrapper
See Also:
ServletResponse#setIntHeader

setLocale

public void setLocale(Locale loc)
Specified by:
setLocale in interface javax.servlet.ServletResponse
Overrides:
setLocale in class javax.servlet.ServletResponseWrapper
See Also:
ServletResponse.setLocale(java.util.Locale)

setStatus

public void setStatus(int sc)
Specified by:
setStatus in interface javax.servlet.http.HttpServletResponse
Overrides:
setStatus in class HttpServletResponseWrapper
See Also:
ServletResponse#setStatus

setStatus

public void setStatus(int sc,
                      String sm)
Specified by:
setStatus in interface javax.servlet.http.HttpServletResponse
Overrides:
setStatus in class HttpServletResponseWrapper
See Also:
ServletResponse#setStatus