jodd.servlet.filter
Class CharArrayResponseWrapper

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by jodd.servlet.filter.CharArrayResponseWrapper
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public class CharArrayResponseWrapper
extends javax.servlet.http.HttpServletResponseWrapper

A response wrapper that takes everything the client would normally output and saves it in one big character array.


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_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
CharArrayResponseWrapper(javax.servlet.http.HttpServletResponse response)
          Initializes wrapper.
 
Method Summary
 void close()
           
 java.lang.String getContentType()
          Returns content type.
 javax.servlet.ServletOutputStream getOutputStream()
          Returns output stream.
 int getSize()
          Returns the size (number of characters) of written data.
 java.io.PrintWriter getWriter()
          When servlets or JSP pages ask for the Writer, don't give them the real one.
 void reset()
           
 void setContentLength(int len)
          This empty method must exist.
 void setContentType(java.lang.String type)
          Sets the content type.
 byte[] toByteArray()
          Get the underlying as byte array.
 char[] toCharArray()
          Get the underlying character array.
 java.lang.String toString()
          Get a String representation of the entire buffer.
 
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, resetBuffer, setBufferSize, setCharacterEncoding, setLocale, setResponse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.servlet.ServletResponse
flushBuffer, getBufferSize, getCharacterEncoding, getLocale, isCommitted, resetBuffer, setBufferSize, setCharacterEncoding, setLocale
 

Constructor Detail

CharArrayResponseWrapper

public CharArrayResponseWrapper(javax.servlet.http.HttpServletResponse response)
Initializes wrapper. First, this constructor calls the parent constructor. That call is crucial so that the response is stored and thus setHeader, setStatus, addCookie, and so forth work normally. Second, this constructor creates a CharArrayWriter that will be used to accumulate the response.

Method Detail

getWriter

public java.io.PrintWriter getWriter()
When servlets or JSP pages ask for the Writer, don't give them the real one. Instead, give them a version that writes into the character array. The filter needs to send the contents of the array to the client (perhaps after modifying it).

Specified by:
getWriter in interface javax.servlet.ServletResponse
Overrides:
getWriter in class javax.servlet.ServletResponseWrapper

toString

public java.lang.String toString()
Get a String representation of the entire buffer. Be sure not to call this method multiple times on the same wrapper. The API for CharArrayWriter does not guarantee that it "remembers" the previous value, so the call is likely to make a new String every time.

Overrides:
toString in class java.lang.Object

toCharArray

public char[] toCharArray()
Get the underlying character array.


toByteArray

public byte[] toByteArray()
Get the underlying as byte array.


setContentLength

public void setContentLength(int len)
This empty method must exist.

Specified by:
setContentLength in interface javax.servlet.ServletResponse
Overrides:
setContentLength in class javax.servlet.ServletResponseWrapper

getSize

public int getSize()
Returns the size (number of characters) of written data.


setContentType

public void setContentType(java.lang.String type)
Sets the content type.

Specified by:
setContentType in interface javax.servlet.ServletResponse
Overrides:
setContentType in class javax.servlet.ServletResponseWrapper

getContentType

public java.lang.String getContentType()
Returns content type.

Specified by:
getContentType in interface javax.servlet.ServletResponse
Overrides:
getContentType in class javax.servlet.ServletResponseWrapper

close

public void close()

reset

public void reset()
Specified by:
reset in interface javax.servlet.ServletResponse
Overrides:
reset in class javax.servlet.ServletResponseWrapper

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
Returns output stream.

Specified by:
getOutputStream in interface javax.servlet.ServletResponse
Overrides:
getOutputStream in class javax.servlet.ServletResponseWrapper


Copyright ©2008 Jodd Team