|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.servlet.ServletResponseWrapper
javax.servlet.http.HttpServletResponseWrapper
com.opensymphony.module.sitemesh.filter.PageResponseWrapper
public final class PageResponseWrapper
Implementation of HttpServletResponseWrapper that captures page data instead of sending to the writer.
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
.
Field Summary | |
---|---|
private boolean |
aborted
|
private Config |
config
|
private String |
contentType
|
private boolean |
debug
|
private String |
encoding
|
private Page |
page
|
private PageOutputStream |
pageOutputStream
|
private PageWriter |
pageWriter
|
private boolean |
parseablePage
|
private HttpServletResponse |
response
|
private boolean |
setContentTypeCalled
|
private boolean |
usingStream
|
private boolean |
usingWriter
|
Constructor Summary | |
---|---|
PageResponseWrapper(HttpServletResponse response,
Config config)
Create PageResponse wrapped around an existing HttpServletResponse. |
|
PageResponseWrapper(HttpServletResponse response,
Config config,
boolean debug)
Create PageResponse wrapped around an existing HttpServletResponse. |
Method Summary | |
---|---|
void |
closeWriter()
Flush and close output stream of wrapped response. |
private String |
extractContentTypeValue(String type,
int startIndex)
|
private OutputBuffer |
getBufferStream()
|
ServletOutputStream |
getOutputStream()
If the page is parseable, return a wrapped ServletOutputStream, else return the default ServletOutputStream. |
Page |
getPage()
Send data written to PageWriter
to PageParser and return a
Page instance. |
private PageOutputStream |
getPageOutputStream()
|
private PageWriter |
getPageWriter()
Return instance of PageWriter
allowing all data written to stream to be stored in temporary buffer. |
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,
String msg)
|
void |
sendRedirect(String location)
|
void |
setContentLength(int contentLength)
Prevent content-length being set if page is parseable. |
void |
setContentType(String type)
Set the content-type of the request and store it so it can be passed to the PageParser . |
void |
setHeader(String name,
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). |
Methods inherited from class javax.servlet.http.HttpServletResponseWrapper |
---|
addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, setDateHeader, setIntHeader, setStatus |
Methods inherited from class javax.servlet.ServletResponseWrapper |
---|
flushBuffer, getBufferSize, getCharacterEncoding, getLocale, getResponse, isCommitted, reset, resetBuffer, setBufferSize, setLocale, setResponse |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.servlet.ServletResponse |
---|
flushBuffer, getBufferSize, getCharacterEncoding, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setLocale |
Field Detail |
---|
private PageWriter pageWriter
private PageOutputStream pageOutputStream
private boolean usingStream
private boolean usingWriter
private Config config
private Page page
private String contentType
private String encoding
private boolean aborted
private boolean parseablePage
private boolean setContentTypeCalled
private boolean debug
private HttpServletResponse response
Constructor Detail |
---|
public PageResponseWrapper(HttpServletResponse response, Config config) throws IOException
IOException
public PageResponseWrapper(HttpServletResponse response, Config config, boolean debug) throws IOException
IOException
Method Detail |
---|
public void setContentType(String type)
PageParser
.
setContentType
in interface ServletResponse
setContentType
in class ServletResponseWrapper
private String extractContentTypeValue(String type, int startIndex)
public void setContentLength(int contentLength)
setContentLength
in interface ServletResponse
setContentLength
in class ServletResponseWrapper
public void setHeader(String name, String value)
setHeader
in interface HttpServletResponse
setHeader
in class HttpServletResponseWrapper
public void setStatus(int sc)
setStatus
in interface HttpServletResponse
setStatus
in class HttpServletResponseWrapper
public ServletOutputStream getOutputStream() throws 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 ServletResponse
getOutputStream
in class ServletResponseWrapper
IOException
private PageOutputStream getPageOutputStream()
public PrintWriter getWriter() throws 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 ServletResponse
getWriter
in class ServletResponseWrapper
IOException
private PageWriter getPageWriter() throws IOException
PageWriter
allowing all data written to stream to be stored in temporary buffer.
IOException
public void closeWriter()
private OutputBuffer getBufferStream()
public boolean isUsingStream()
public boolean isUsingWriter()
public Page getPage() throws IOException
PageWriter
to PageParser
and return a
Page
instance. If the
Page
is not parseable,
null will be returned.
IOException
public void sendError(int sc) throws IOException
sendError
in interface HttpServletResponse
sendError
in class HttpServletResponseWrapper
IOException
public void sendError(int sc, String msg) throws IOException
sendError
in interface HttpServletResponse
sendError
in class HttpServletResponseWrapper
IOException
public void sendRedirect(String location) throws IOException
sendRedirect
in interface HttpServletResponse
sendRedirect
in class HttpServletResponseWrapper
IOException
|
www.opensymphony.com/sitemesh/ | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |