public final class PageResponseWrapper
extends javax.servlet.http.HttpServletResponseWrapper
Should be used in filter-chains or when forwarding/including pages using a RequestDispatcher.
In order to capture the response, getWriter() returns
an instance of PageWriter.
| Modifier and Type | Field and Description |
|---|---|
private boolean |
aborted |
private Config |
config |
private java.lang.String |
contentType |
private boolean |
debug |
private java.lang.String |
encoding |
private Page |
page |
private PageOutputStream |
pageOutputStream |
private PageWriter |
pageWriter |
private boolean |
parseablePage |
private javax.servlet.http.HttpServletResponse |
response |
private boolean |
setContentTypeCalled |
private boolean |
usingStream |
private boolean |
usingWriter |
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 and Description |
|---|
PageResponseWrapper(javax.servlet.http.HttpServletResponse response,
Config config)
Create PageResponse wrapped around an existing HttpServletResponse.
|
PageResponseWrapper(javax.servlet.http.HttpServletResponse response,
Config config,
boolean debug)
Create PageResponse wrapped around an existing HttpServletResponse.
|
| Modifier and Type | Method and Description |
|---|---|
void |
closeWriter()
Flush and close output stream of wrapped response.
|
private java.lang.String |
extractContentTypeValue(java.lang.String type,
int startIndex) |
private OutputBuffer |
getBufferStream() |
javax.servlet.ServletOutputStream |
getOutputStream()
If the page is parseable, return a wrapped ServletOutputStream, else return the
default ServletOutputStream.
|
Page |
getPage()
|
private PageOutputStream |
getPageOutputStream() |
private PageWriter |
getPageWriter()
Return instance of
PageWriter
allowing all data written to stream to be stored in temporary buffer. |
java.io.PrintWriter |
getWriter()
If the page is parseable we return an instance of
PageWriter allowing all
data written to stream to be stored in temporary buffer. |
boolean |
isUsingStream() |
boolean |
isUsingWriter() |
void |
sendError(int sc) |
void |
sendError(int sc,
java.lang.String msg) |
void |
sendRedirect(java.lang.String location) |
void |
setContentLength(int contentLength)
Prevent content-length being set if page is parseable.
|
void |
setContentType(java.lang.String type)
Set the content-type of the request and store it so it can
be passed to the
PageParser. |
void |
setHeader(java.lang.String name,
java.lang.String value)
Prevent content-length being set if page is parseable.
|
void |
setStatus(int sc)
Prevent 'not modified' (304) HTTP status from being sent if page is parseable
(so web-server/browser doesn't cache contents).
|
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, setDateHeader, setIntHeader, setStatusflushBuffer, getBufferSize, getCharacterEncoding, getLocale, getResponse, isCommitted, reset, resetBuffer, setBufferSize, setLocale, setResponseprivate PageWriter pageWriter
private PageOutputStream pageOutputStream
private boolean usingStream
private boolean usingWriter
private Config config
private Page page
private java.lang.String contentType
private java.lang.String encoding
private boolean aborted
private boolean parseablePage
private boolean setContentTypeCalled
private boolean debug
private javax.servlet.http.HttpServletResponse response
public PageResponseWrapper(javax.servlet.http.HttpServletResponse response,
Config config)
throws java.io.IOException
java.io.IOExceptionpublic PageResponseWrapper(javax.servlet.http.HttpServletResponse response,
Config config,
boolean debug)
throws java.io.IOException
java.io.IOExceptionpublic void setContentType(java.lang.String type)
PageParser.setContentType in interface javax.servlet.ServletResponsesetContentType in class javax.servlet.ServletResponseWrapperprivate java.lang.String extractContentTypeValue(java.lang.String type,
int startIndex)
public void setContentLength(int contentLength)
setContentLength in interface javax.servlet.ServletResponsesetContentLength in class javax.servlet.ServletResponseWrapperpublic void setHeader(java.lang.String name,
java.lang.String value)
setHeader in interface javax.servlet.http.HttpServletResponsesetHeader in class javax.servlet.http.HttpServletResponseWrapperpublic void setStatus(int sc)
setStatus in interface javax.servlet.http.HttpServletResponsesetStatus in class javax.servlet.http.HttpServletResponseWrapperpublic javax.servlet.ServletOutputStream getOutputStream()
throws java.io.IOException
If the page is parseable, return a wrapped ServletOutputStream, else return the default ServletOutputStream.
This is called internally by Orion 1.5.4, Resin 2.1.0, Tomcat 4.1.12 - naughty!
getOutputStream in interface javax.servlet.ServletResponsegetOutputStream in class javax.servlet.ServletResponseWrapperjava.io.IOExceptionprivate PageOutputStream getPageOutputStream()
public java.io.PrintWriter getWriter()
throws java.io.IOException
If the page is parseable we return an instance of
PageWriter allowing all
data written to stream to be stored in temporary buffer.
getWriter in interface javax.servlet.ServletResponsegetWriter in class javax.servlet.ServletResponseWrapperjava.io.IOExceptionprivate PageWriter getPageWriter() throws java.io.IOException
PageWriter
allowing all data written to stream to be stored in temporary buffer.java.io.IOExceptionpublic void closeWriter()
private OutputBuffer getBufferStream()
public boolean isUsingStream()
public boolean isUsingWriter()
public Page getPage() throws java.io.IOException
PageWriter
to PageParser and return a
Page instance. If the
Page is not parseable,
null will be returned.java.io.IOExceptionpublic void sendError(int sc)
throws java.io.IOException
sendError in interface javax.servlet.http.HttpServletResponsesendError in class javax.servlet.http.HttpServletResponseWrapperjava.io.IOExceptionpublic void sendError(int sc,
java.lang.String msg)
throws java.io.IOException
sendError in interface javax.servlet.http.HttpServletResponsesendError in class javax.servlet.http.HttpServletResponseWrapperjava.io.IOExceptionpublic void sendRedirect(java.lang.String location)
throws java.io.IOException
sendRedirect in interface javax.servlet.http.HttpServletResponsesendRedirect in class javax.servlet.http.HttpServletResponseWrapperjava.io.IOException