com.opensymphony.module.sitemesh.filter
Class PageResponseWrapper

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by com.opensymphony.module.sitemesh.filter.PageResponseWrapper
All Implemented Interfaces:
javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

public final class PageResponseWrapper
extends javax.servlet.http.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: 17 $
Author:
Joe Walnes, Scott Farquhar

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_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
PageResponseWrapper(javax.servlet.http.HttpServletResponse response, com.opensymphony.module.sitemesh.Factory factory)
           
 
Method Summary
 void addHeader(java.lang.String name, java.lang.String value)
          Prevent content-length being set if page is parseable.
 javax.servlet.ServletOutputStream getOutputStream()
           
 com.opensymphony.module.sitemesh.Page getPage()
           
 java.io.PrintWriter getWriter()
           
 boolean isUsingStream()
           
 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).
 
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
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
 

Constructor Detail

PageResponseWrapper

public PageResponseWrapper(javax.servlet.http.HttpServletResponse response,
                           com.opensymphony.module.sitemesh.Factory factory)
Method Detail

setContentType

public void setContentType(java.lang.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 javax.servlet.ServletResponse
Overrides:
setContentType in class javax.servlet.ServletResponseWrapper

setContentLength

public void setContentLength(int contentLength)
Prevent content-length being set if page is parseable.

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

setHeader

public void setHeader(java.lang.String name,
                      java.lang.String value)
Prevent content-length being set if page is parseable.

Specified by:
setHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
setHeader in class javax.servlet.http.HttpServletResponseWrapper

addHeader

public void addHeader(java.lang.String name,
                      java.lang.String value)
Prevent content-length being set if page is parseable.

Specified by:
addHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
addHeader in class javax.servlet.http.HttpServletResponseWrapper

setStatus

public 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).

Specified by:
setStatus in interface javax.servlet.http.HttpServletResponse
Overrides:
setStatus in class javax.servlet.http.HttpServletResponseWrapper

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
Specified by:
getOutputStream in interface javax.servlet.ServletResponse
Overrides:
getOutputStream in class javax.servlet.ServletResponseWrapper

getWriter

public java.io.PrintWriter getWriter()
Specified by:
getWriter in interface javax.servlet.ServletResponse
Overrides:
getWriter in class javax.servlet.ServletResponseWrapper

getPage

public com.opensymphony.module.sitemesh.Page getPage()
                                              throws java.io.IOException
Throws:
java.io.IOException

sendError

public void sendError(int sc)
               throws java.io.IOException
Specified by:
sendError in interface javax.servlet.http.HttpServletResponse
Overrides:
sendError in class javax.servlet.http.HttpServletResponseWrapper
Throws:
java.io.IOException

sendError

public void sendError(int sc,
                      java.lang.String msg)
               throws java.io.IOException
Specified by:
sendError in interface javax.servlet.http.HttpServletResponse
Overrides:
sendError in class javax.servlet.http.HttpServletResponseWrapper
Throws:
java.io.IOException

sendRedirect

public void sendRedirect(java.lang.String location)
                  throws java.io.IOException
Specified by:
sendRedirect in interface javax.servlet.http.HttpServletResponse
Overrides:
sendRedirect in class javax.servlet.http.HttpServletResponseWrapper
Throws:
java.io.IOException

isUsingStream

public boolean isUsingStream()


Copyright © 2004-2008. All Rights Reserved.