com.opensymphony.module.sitemesh.filter
Class PageResponseWrapper
java.lang.Object
javax.servlet.ServletResponseWrapper
javax.servlet.http.HttpServletResponseWrapper
com.opensymphony.module.sitemesh.filter.PageResponseWrapper
- All Implemented Interfaces:
- HttpServletResponse, ServletResponse
public class PageResponseWrapper - extends HttpServletResponseWrapper
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.
- Version:
- $Revision: 1.17 $
- Author:
- Joe Walnes, Scott Farquhar
| 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 |
| Methods inherited from class javax.servlet.http.HttpServletResponseWrapper |
addCookie, addDateHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, setDateHeader, setIntHeader, setStatus |
| Methods inherited from class javax.servlet.ServletResponseWrapper |
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setLocale, setResponse |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
routablePrintWriter
private final RoutablePrintWriter routablePrintWriter
routableServletOutputStream
private final RoutableServletOutputStream routableServletOutputStream
parserSelector
private final PageParserSelector parserSelector
buffer
private Buffer buffer
aborted
private boolean aborted
parseablePage
private boolean parseablePage
PageResponseWrapper
public PageResponseWrapper(HttpServletResponse response,
PageParserSelector parserSelector)
setContentType
public void setContentType(String type)
- Set the content-type of the request and store it so it can
be passed to the
PageParser.
- Specified by:
setContentType in interface ServletResponse- Overrides:
setContentType in class ServletResponseWrapper
activateSiteMesh
public void activateSiteMesh(String contentType,
String encoding)
deactivateSiteMesh
private void deactivateSiteMesh()
setContentLength
public void setContentLength(int contentLength)
- Prevent content-length being set if page is parseable.
- Specified by:
setContentLength in interface ServletResponse- Overrides:
setContentLength in class ServletResponseWrapper
flushBuffer
public void flushBuffer()
throws IOException
- Prevent buffer from being flushed if this is a page being parsed.
- Specified by:
flushBuffer in interface ServletResponse- Overrides:
flushBuffer in class ServletResponseWrapper
- Throws:
IOException
setHeader
public void setHeader(String name,
String value)
- Prevent content-length being set if page is parseable.
- Specified by:
setHeader in interface HttpServletResponse- Overrides:
setHeader in class HttpServletResponseWrapper
addHeader
public void addHeader(String name,
String value)
- Prevent content-length being set if page is parseable.
- Specified by:
addHeader in interface HttpServletResponse- Overrides:
addHeader in class HttpServletResponseWrapper
setStatus
public void setStatus(int sc)
- If 'not modified' (304) HTTP status is being sent - then abort parsing, as there shouldn't be any body
- Specified by:
setStatus in interface HttpServletResponse- Overrides:
setStatus in class HttpServletResponseWrapper
getOutputStream
public ServletOutputStream getOutputStream()
- Specified by:
getOutputStream in interface ServletResponse- Overrides:
getOutputStream in class ServletResponseWrapper
getWriter
public PrintWriter getWriter()
- Specified by:
getWriter in interface ServletResponse- Overrides:
getWriter in class ServletResponseWrapper
getPage
public Page getPage()
throws IOException
- Throws:
IOException
sendError
public void sendError(int sc)
throws IOException
- Specified by:
sendError in interface HttpServletResponse- Overrides:
sendError in class HttpServletResponseWrapper
- Throws:
IOException
sendError
public void sendError(int sc,
String msg)
throws IOException
- Specified by:
sendError in interface HttpServletResponse- Overrides:
sendError in class HttpServletResponseWrapper
- Throws:
IOException
sendRedirect
public void sendRedirect(String location)
throws IOException
- Specified by:
sendRedirect in interface HttpServletResponse- Overrides:
sendRedirect in class HttpServletResponseWrapper
- Throws:
IOException
isUsingStream
public boolean isUsingStream()
getContents
public char[] getContents()
throws IOException
- Throws:
IOException
|