javax.servlet.http
Class HttpServletResponseWrapper

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
All Implemented Interfaces:
HttpServletResponse, ServletResponse

public class HttpServletResponseWrapper
extends ServletResponseWrapper
implements HttpServletResponse

Wraps a servlet request in another request. Filters may use HttpServletResponseWrapper to modify the headers passed to the servlet.

The default methods just call the wrapped request methods.

Since:
servlet 2.3

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_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
 
Constructor Summary
HttpServletResponseWrapper(HttpServletResponse response)
          Creates a new Response wrapper
 
Method Summary
 void addCookie(Cookie cookie)
          Sends a new cookie to the client.
 void addDateHeader(java.lang.String name, long date)
          Adds a header by converting a date to a string.
 void addHeader(java.lang.String name, java.lang.String value)
          Adds a header.
 void addIntHeader(java.lang.String name, int value)
          Adds a header by converting an integer value to a string.
 boolean containsHeader(java.lang.String name)
          Returns true if the output headers include name
 java.lang.String encodeRedirectUrl(java.lang.String url)
          Deprecated.  
 java.lang.String encodeRedirectURL(java.lang.String name)
          Encodes session information in a URL suitable for sendRedirect()
 java.lang.String encodeUrl(java.lang.String url)
          Deprecated.  
 java.lang.String encodeURL(java.lang.String url)
          Encodes session information in a URL.
 java.lang.String getHeader(java.lang.String name)
          Retuns value of header with a given name
 java.util.Collection<java.lang.String> getHeaderNames()
          Returns an Iterable for header names set via HttpServletResponse.setHeader(java.lang.String, java.lang.String), HttpServletResponse.addHeader(java.lang.String, java.lang.String), HttpServletResponse.setDateHeader(java.lang.String, long), HttpServletResponse.addDateHeader(java.lang.String, long), HttpServletResponse.setIntHeader(java.lang.String, int), or HttpServletResponse.addIntHeader(java.lang.String, int), respectively.
 java.util.Collection<java.lang.String> getHeaders(java.lang.String name)
          Returns an Iterable for header values with a given name
 int getStatus()
          Returns the current status code of this response
 void sendError(int sc)
          Sends an HTTP error page based on the status code
 void sendError(int sc, java.lang.String msg)
          Sends an HTTP error page based on the status code
 void sendRedirect(java.lang.String location)
          Redirects the client to another page.
 void setDateHeader(java.lang.String name, long date)
          Sets a header by converting a date to a string.
 void setHeader(java.lang.String name, java.lang.String value)
          Sets a header.
 void setIntHeader(java.lang.String name, int value)
          Sets a header by converting an integer value to a string.
 void setResponse(ServletResponse response)
          Sets a response object.
 void setStatus(int sc)
          Sets the HTTP status
 void setStatus(int sc, java.lang.String msg)
           
 
Methods inherited from class javax.servlet.ServletResponseWrapper
flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getOutputStream, getResponse, getWriter, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentType, setLocale
 
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, getContentType, getLocale, getOutputStream, getWriter, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentType, setLocale
 

Constructor Detail

HttpServletResponseWrapper

public HttpServletResponseWrapper(HttpServletResponse response)
Creates a new Response wrapper

Parameters:
response - the wrapped response
Method Detail

setResponse

public void setResponse(ServletResponse response)
Sets a response object.

Overrides:
setResponse in class ServletResponseWrapper
Parameters:
response - the response object

setStatus

public void setStatus(int sc)
Sets the HTTP status

Specified by:
setStatus in interface HttpServletResponse
Parameters:
sc - the HTTP status code

sendError

public void sendError(int sc,
                      java.lang.String msg)
               throws java.io.IOException
Sends an HTTP error page based on the status code

Specified by:
sendError in interface HttpServletResponse
Parameters:
sc - the HTTP status code
Throws:
java.io.IOException

sendError

public void sendError(int sc)
               throws java.io.IOException
Sends an HTTP error page based on the status code

Specified by:
sendError in interface HttpServletResponse
Parameters:
sc - the HTTP status code
Throws:
java.io.IOException

sendRedirect

public void sendRedirect(java.lang.String location)
                  throws java.io.IOException
Redirects the client to another page.

Specified by:
sendRedirect in interface HttpServletResponse
Parameters:
location - the location to redirect to.
Throws:
java.io.IOException

setHeader

public void setHeader(java.lang.String name,
                      java.lang.String value)
Sets a header. This will override a previous header with the same name.

Specified by:
setHeader in interface HttpServletResponse
Parameters:
name - the header name
value - the header value

addHeader

public void addHeader(java.lang.String name,
                      java.lang.String value)
Adds a header. If another header with the same name exists, both will be sent to the client.

Specified by:
addHeader in interface HttpServletResponse
Parameters:
name - the header name
value - the header value

containsHeader

public boolean containsHeader(java.lang.String name)
Returns true if the output headers include name

Specified by:
containsHeader in interface HttpServletResponse
Parameters:
name - the header name to test

setDateHeader

public void setDateHeader(java.lang.String name,
                          long date)
Sets a header by converting a date to a string.

To set the page to expire in 15 seconds use the following:


 long now = System.currentTime();
 response.setDateHeader("Expires", now + 15000);
 

Specified by:
setDateHeader in interface HttpServletResponse
Parameters:
name - name of the header
date - the date in milliseconds since the epoch.

addDateHeader

public void addDateHeader(java.lang.String name,
                          long date)
Adds a header by converting a date to a string.

Specified by:
addDateHeader in interface HttpServletResponse
Parameters:
name - name of the header
date - the date in milliseconds since the epoch.

setIntHeader

public void setIntHeader(java.lang.String name,
                         int value)
Sets a header by converting an integer value to a string.

Specified by:
setIntHeader in interface HttpServletResponse
Parameters:
name - name of the header
value - the value as an integer

addIntHeader

public void addIntHeader(java.lang.String name,
                         int value)
Adds a header by converting an integer value to a string.

Specified by:
addIntHeader in interface HttpServletResponse
Parameters:
name - name of the header
value - the value as an integer

addCookie

public void addCookie(Cookie cookie)
Sends a new cookie to the client.

Specified by:
addCookie in interface HttpServletResponse

encodeURL

public java.lang.String encodeURL(java.lang.String url)
Encodes session information in a URL. Calling this will enable sessions for users who have disabled cookies.

Specified by:
encodeURL in interface HttpServletResponse
Parameters:
url - the url to encode
Returns:
a url with session information encoded

encodeRedirectURL

public java.lang.String encodeRedirectURL(java.lang.String name)
Encodes session information in a URL suitable for sendRedirect()

Specified by:
encodeRedirectURL in interface HttpServletResponse
Parameters:
url - the url to encode
Returns:
a url with session information encoded

setStatus

public void setStatus(int sc,
                      java.lang.String msg)
Specified by:
setStatus in interface HttpServletResponse

getStatus

public int getStatus()
Description copied from interface: HttpServletResponse
Returns the current status code of this response

Specified by:
getStatus in interface HttpServletResponse
Returns:

getHeader

public java.lang.String getHeader(java.lang.String name)
Description copied from interface: HttpServletResponse
Retuns value of header with a given name

Specified by:
getHeader in interface HttpServletResponse
Returns:

getHeaders

public java.util.Collection<java.lang.String> getHeaders(java.lang.String name)
Description copied from interface: HttpServletResponse
Returns an Iterable for header values with a given name

Specified by:
getHeaders in interface HttpServletResponse
Returns:

getHeaderNames

public java.util.Collection<java.lang.String> getHeaderNames()
Description copied from interface: HttpServletResponse
Returns an Iterable for header names set via HttpServletResponse.setHeader(java.lang.String, java.lang.String), HttpServletResponse.addHeader(java.lang.String, java.lang.String), HttpServletResponse.setDateHeader(java.lang.String, long), HttpServletResponse.addDateHeader(java.lang.String, long), HttpServletResponse.setIntHeader(java.lang.String, int), or HttpServletResponse.addIntHeader(java.lang.String, int), respectively.

Specified by:
getHeaderNames in interface HttpServletResponse
Returns:

encodeUrl

public java.lang.String encodeUrl(java.lang.String url)
Deprecated. 

Specified by:
encodeUrl in interface HttpServletResponse

encodeRedirectUrl

public java.lang.String encodeRedirectUrl(java.lang.String url)
Deprecated. 

Specified by:
encodeRedirectUrl in interface HttpServletResponse