org.apache.jetspeed.resource
Class BufferedHttpServletResponse
java.lang.Object
javax.servlet.ServletResponseWrapper
javax.servlet.http.HttpServletResponseWrapper
org.apache.jetspeed.resource.BufferedHttpServletResponse
- All Implemented Interfaces:
- javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse
public class BufferedHttpServletResponse
- extends javax.servlet.http.HttpServletResponseWrapper
BufferedHttpServletResponse fully captures all HttpServletResponse interactions to be flushed out later.
This wrapper is specifically written to allow included servlets to set headers, cookies, encoding etc. which isn't allowed by
the servlet specification on included responses.
Call flush(HttpServletResponse) after the include has returned to flush out the buffered data, headers and state.
Note: the only method not fully supported by this buffered version is getCharacterEncoding(). Setting characterEncoding through
setContentType or setLocale on this class won't be reflected in the return value from getCharacterEncoding(), and calling getWriter()
won't set it either although calling setLocale, setContentType or setCharacterEncoding (servlet api 2.4+) after that will be ignored.
But, when this object is flused to a (real) response, the contentType, locale and/or characterEncoding recorded will be set on the
target response then.
- Version:
- $Id: BufferedHttpServletResponse.java 544024 2007-06-04 00:59:09Z ate $
- Author:
- Ate Douma
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 |
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper |
encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL |
Methods inherited from class javax.servlet.ServletResponseWrapper |
getResponse, setResponse |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
byteOutputBuffer
private ByteArrayOutputStream byteOutputBuffer
charOutputBuffer
private BufferedHttpServletResponse.CharArrayWriterBuffer charOutputBuffer
outputStream
private javax.servlet.ServletOutputStream outputStream
printWriter
private PrintWriter printWriter
headers
private HashMap headers
cookies
private ArrayList cookies
errorCode
private int errorCode
statusCode
private int statusCode
errorMessage
private String errorMessage
redirectLocation
private String redirectLocation
committed
private boolean committed
hasStatus
private boolean hasStatus
hasError
private boolean hasError
locale
private Locale locale
closed
private boolean closed
characterEncoding
private String characterEncoding
contentLength
private int contentLength
contentType
private String contentType
flushed
private boolean flushed
BufferedHttpServletResponse
public BufferedHttpServletResponse(javax.servlet.http.HttpServletResponse response)
flush
public void flush(javax.servlet.http.HttpServletResponse response)
throws IOException
- Throws:
IOException
getHeaderList
private ArrayList getHeaderList(String name,
boolean create)
failIfCommitted
private void failIfCommitted()
addCookie
public void addCookie(javax.servlet.http.Cookie cookie)
- Specified by:
addCookie
in interface javax.servlet.http.HttpServletResponse
- Overrides:
addCookie
in class javax.servlet.http.HttpServletResponseWrapper
addDateHeader
public void addDateHeader(String name,
long date)
- 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
addIntHeader
public void addIntHeader(String name,
int value)
- Specified by:
addIntHeader
in interface javax.servlet.http.HttpServletResponse
- Overrides:
addIntHeader
in class javax.servlet.http.HttpServletResponseWrapper
containsHeader
public boolean containsHeader(String name)
- Specified by:
containsHeader
in interface javax.servlet.http.HttpServletResponse
- Overrides:
containsHeader
in class javax.servlet.http.HttpServletResponseWrapper
sendError
public void sendError(int errorCode,
String errorMessage)
throws IOException
- Specified by:
sendError
in interface javax.servlet.http.HttpServletResponse
- Overrides:
sendError
in class javax.servlet.http.HttpServletResponseWrapper
- Throws:
IOException
sendError
public void sendError(int errorCode)
throws IOException
- Specified by:
sendError
in interface javax.servlet.http.HttpServletResponse
- Overrides:
sendError
in class javax.servlet.http.HttpServletResponseWrapper
- Throws:
IOException
sendRedirect
public void sendRedirect(String redirectLocation)
throws IOException
- Specified by:
sendRedirect
in interface javax.servlet.http.HttpServletResponse
- Overrides:
sendRedirect
in class javax.servlet.http.HttpServletResponseWrapper
- Throws:
IOException
setDateHeader
public void setDateHeader(String name,
long date)
- 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
setIntHeader
public void setIntHeader(String name,
int value)
- Specified by:
setIntHeader
in interface javax.servlet.http.HttpServletResponse
- Overrides:
setIntHeader
in class javax.servlet.http.HttpServletResponseWrapper
setStatus
public void setStatus(int statusCode,
String message)
- Specified by:
setStatus
in interface javax.servlet.http.HttpServletResponse
- Overrides:
setStatus
in class javax.servlet.http.HttpServletResponseWrapper
setStatus
public void setStatus(int statusCode)
- Specified by:
setStatus
in interface javax.servlet.http.HttpServletResponse
- Overrides:
setStatus
in class javax.servlet.http.HttpServletResponseWrapper
flushBuffer
public void flushBuffer()
throws IOException
- Specified by:
flushBuffer
in interface javax.servlet.ServletResponse
- Overrides:
flushBuffer
in class javax.servlet.ServletResponseWrapper
- Throws:
IOException
getBufferSize
public int getBufferSize()
- Specified by:
getBufferSize
in interface javax.servlet.ServletResponse
- Overrides:
getBufferSize
in class javax.servlet.ServletResponseWrapper
getCharacterEncoding
public String getCharacterEncoding()
- Specified by:
getCharacterEncoding
in interface javax.servlet.ServletResponse
- Overrides:
getCharacterEncoding
in class javax.servlet.ServletResponseWrapper
getLocale
public Locale getLocale()
- Specified by:
getLocale
in interface javax.servlet.ServletResponse
- Overrides:
getLocale
in class javax.servlet.ServletResponseWrapper
getOutputStream
public javax.servlet.ServletOutputStream getOutputStream()
throws IOException
- Specified by:
getOutputStream
in interface javax.servlet.ServletResponse
- Overrides:
getOutputStream
in class javax.servlet.ServletResponseWrapper
- Throws:
IOException
getWriter
public PrintWriter getWriter()
throws IOException
- Specified by:
getWriter
in interface javax.servlet.ServletResponse
- Overrides:
getWriter
in class javax.servlet.ServletResponseWrapper
- Throws:
IOException
isCommitted
public boolean isCommitted()
- Specified by:
isCommitted
in interface javax.servlet.ServletResponse
- Overrides:
isCommitted
in class javax.servlet.ServletResponseWrapper
reset
public void reset()
- Specified by:
reset
in interface javax.servlet.ServletResponse
- Overrides:
reset
in class javax.servlet.ServletResponseWrapper
resetBuffer
public void resetBuffer()
- Specified by:
resetBuffer
in interface javax.servlet.ServletResponse
- Overrides:
resetBuffer
in class javax.servlet.ServletResponseWrapper
setBufferSize
public void setBufferSize(int size)
- Specified by:
setBufferSize
in interface javax.servlet.ServletResponse
- Overrides:
setBufferSize
in class javax.servlet.ServletResponseWrapper
setCharacterEncoding
public void setCharacterEncoding(String charset)
setContentLength
public void setContentLength(int len)
- Specified by:
setContentLength
in interface javax.servlet.ServletResponse
- Overrides:
setContentLength
in class javax.servlet.ServletResponseWrapper
setContentType
public void setContentType(String type)
- Specified by:
setContentType
in interface javax.servlet.ServletResponse
- Overrides:
setContentType
in class javax.servlet.ServletResponseWrapper
setLocale
public void setLocale(Locale locale)
- Specified by:
setLocale
in interface javax.servlet.ServletResponse
- Overrides:
setLocale
in class javax.servlet.ServletResponseWrapper
Copyright © 1999-2007 Apache Software Foundation. All Rights Reserved.