Class HttpServletResponseWrapper

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

public class HttpServletResponseWrapper
extends ServletResponseWrapper
implements HttpServletResponse
Provides a convenient implementation of the HttpServletResponse interface that can be subclassed by developers wishing to adapt the response from a Servlet. This class implements the Wrapper or Decorator pattern. Methods default to calling through to the wrapped response object.
Since:
Servlet 2.3
Author:
Various
See Also:
HttpServletResponse
  • Constructor Details

    • HttpServletResponseWrapper

      public HttpServletResponseWrapper​(HttpServletResponse response)
      Constructs a response adaptor wrapping the given response.
      Parameters:
      response - the HttpServletResponse to be wrapped.
      Throws:
      java.lang.IllegalArgumentException - if the response is null
  • Method Details

    • addCookie

      public void addCookie​(Cookie cookie)
      The default behavior of this method is to call addCookie(Cookie cookie) on the wrapped response object.
      Specified by:
      addCookie in interface HttpServletResponse
      Parameters:
      cookie - the Cookie to return to the client
    • containsHeader

      public boolean containsHeader​(java.lang.String name)
      The default behavior of this method is to call containsHeader(String name) on the wrapped response object.
      Specified by:
      containsHeader in interface HttpServletResponse
      Parameters:
      name - the header name
      Returns:
      true if the named response header has already been set; false otherwise
    • encodeURL

      public java.lang.String encodeURL​(java.lang.String url)
      The default behavior of this method is to call encodeURL(String url) on the wrapped response object.
      Specified by:
      encodeURL in interface HttpServletResponse
      Parameters:
      url - the url to be encoded.
      Returns:
      the encoded URL if encoding is needed; the unchanged URL otherwise.
    • encodeRedirectURL

      public java.lang.String encodeRedirectURL​(java.lang.String url)
      The default behavior of this method is to return encodeRedirectURL(String url) on the wrapped response object.
      Specified by:
      encodeRedirectURL in interface HttpServletResponse
      Parameters:
      url - the url to be encoded.
      Returns:
      the encoded URL if encoding is needed; the unchanged URL otherwise.
      See Also:
      HttpServletResponse.sendRedirect(java.lang.String), HttpServletResponse.encodeUrl(java.lang.String)
    • encodeUrl

      @Deprecated public java.lang.String encodeUrl​(java.lang.String url)
      Deprecated.
      As of version 2.1, use encodeURL(String url) instead
      The default behavior of this method is to call encodeUrl(String url) on the wrapped response object.
      Specified by:
      encodeUrl in interface HttpServletResponse
      Parameters:
      url - the url to be encoded.
      Returns:
      the encoded URL if encoding is needed; the unchanged URL otherwise.
    • encodeRedirectUrl

      @Deprecated public java.lang.String encodeRedirectUrl​(java.lang.String url)
      Deprecated.
      As of version 2.1, use encodeRedirectURL(String url) instead
      The default behavior of this method is to return encodeRedirectUrl(String url) on the wrapped response object.
      Specified by:
      encodeRedirectUrl in interface HttpServletResponse
      Parameters:
      url - the url to be encoded.
      Returns:
      the encoded URL if encoding is needed; the unchanged URL otherwise.
    • sendError

      public void sendError​(int sc, java.lang.String msg) throws java.io.IOException
      The default behavior of this method is to call sendError(int sc, String msg) on the wrapped response object.
      Specified by:
      sendError in interface HttpServletResponse
      Parameters:
      sc - the error status code
      msg - the descriptive message
      Throws:
      java.io.IOException - If an input or output exception occurs
    • sendError

      public void sendError​(int sc) throws java.io.IOException
      The default behavior of this method is to call sendError(int sc) on the wrapped response object.
      Specified by:
      sendError in interface HttpServletResponse
      Parameters:
      sc - the error status code
      Throws:
      java.io.IOException - If an input or output exception occurs
    • sendRedirect

      public void sendRedirect​(java.lang.String location) throws java.io.IOException
      The default behavior of this method is to return sendRedirect(String location) on the wrapped response object.
      Specified by:
      sendRedirect in interface HttpServletResponse
      Parameters:
      location - the redirect location URL
      Throws:
      java.io.IOException - If an input or output exception occurs
    • setDateHeader

      public void setDateHeader​(java.lang.String name, long date)
      The default behavior of this method is to call setDateHeader(String name, long date) on the wrapped response object.
      Specified by:
      setDateHeader in interface HttpServletResponse
      Parameters:
      name - the name of the header to set
      date - the assigned date value
      See Also:
      HttpServletResponse.containsHeader(java.lang.String), HttpServletResponse.addDateHeader(java.lang.String, long)
    • addDateHeader

      public void addDateHeader​(java.lang.String name, long date)
      The default behavior of this method is to call addDateHeader(String name, long date) on the wrapped response object.
      Specified by:
      addDateHeader in interface HttpServletResponse
      Parameters:
      name - the name of the header to set
      date - the additional date value
      See Also:
      HttpServletResponse.setDateHeader(java.lang.String, long)
    • setHeader

      public void setHeader​(java.lang.String name, java.lang.String value)
      The default behavior of this method is to return setHeader(String name, String value) on the wrapped response object.
      Specified by:
      setHeader in interface HttpServletResponse
      Parameters:
      name - the name of the header
      value - the header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)
      See Also:
      HttpServletResponse.containsHeader(java.lang.String), HttpServletResponse.addHeader(java.lang.String, java.lang.String)
    • addHeader

      public void addHeader​(java.lang.String name, java.lang.String value)
      The default behavior of this method is to return addHeader(String name, String value) on the wrapped response object.
      Specified by:
      addHeader in interface HttpServletResponse
      Parameters:
      name - the name of the header
      value - the additional header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)
      See Also:
      HttpServletResponse.setHeader(java.lang.String, java.lang.String)
    • setIntHeader

      public void setIntHeader​(java.lang.String name, int value)
      The default behavior of this method is to call setIntHeader(String name, int value) on the wrapped response object.
      Specified by:
      setIntHeader in interface HttpServletResponse
      Parameters:
      name - the name of the header
      value - the assigned integer value
      See Also:
      HttpServletResponse.containsHeader(java.lang.String), HttpServletResponse.addIntHeader(java.lang.String, int)
    • addIntHeader

      public void addIntHeader​(java.lang.String name, int value)
      The default behavior of this method is to call addIntHeader(String name, int value) on the wrapped response object.
      Specified by:
      addIntHeader in interface HttpServletResponse
      Parameters:
      name - the name of the header
      value - the assigned integer value
      See Also:
      HttpServletResponse.setIntHeader(java.lang.String, int)
    • setStatus

      public void setStatus​(int sc)
      The default behavior of this method is to call setStatus(int sc) on the wrapped response object.
      Specified by:
      setStatus in interface HttpServletResponse
      Parameters:
      sc - the status code
      See Also:
      HttpServletResponse.sendError(int, java.lang.String)
    • setStatus

      @Deprecated public void setStatus​(int sc, java.lang.String sm)
      Deprecated.
      As of version 2.1, due to ambiguous meaning of the message parameter. To set a status code use setStatus(int), to send an error with a description use sendError(int, String)
      The default behavior of this method is to call setStatus(int sc, String sm) on the wrapped response object.
      Specified by:
      setStatus in interface HttpServletResponse
      Parameters:
      sc - the status code
      sm - the status message
    • getStatus

      public int getStatus()
      The default behaviour of this method is to call HttpServletResponse.getStatus() on the wrapped response object.
      Specified by:
      getStatus in interface HttpServletResponse
      Returns:
      the current status code of the wrapped response
    • getHeader

      public java.lang.String getHeader​(java.lang.String name)
      The default behaviour of this method is to call HttpServletResponse.getHeader(java.lang.String) on the wrapped response object.
      Specified by:
      getHeader in interface HttpServletResponse
      Parameters:
      name - the name of the response header whose value to return
      Returns:
      the value of the response header with the given name, or null if no header with the given name has been set on the wrapped response
      Since:
      Servlet 3.0
    • getHeaders

      public java.util.Collection<java.lang.String> getHeaders​(java.lang.String name)
      The default behaviour of this method is to call HttpServletResponse.getHeaders(java.lang.String) on the wrapped response object.

      Any changes to the returned Collection must not affect this HttpServletResponseWrapper.

      Specified by:
      getHeaders in interface HttpServletResponse
      Parameters:
      name - the name of the response header whose values to return
      Returns:
      a (possibly empty) Collection of the values of the response header with the given name
      Since:
      Servlet 3.0
    • getHeaderNames

      public java.util.Collection<java.lang.String> getHeaderNames()
      The default behaviour of this method is to call HttpServletResponse.getHeaderNames() on the wrapped response object.

      Any changes to the returned Collection must not affect this HttpServletResponseWrapper.

      Specified by:
      getHeaderNames in interface HttpServletResponse
      Returns:
      a (possibly empty) Collection of the names of the response headers
      Since:
      Servlet 3.0
    • setTrailerFields

      public void setTrailerFields​(java.util.function.Supplier<java.util.Map<java.lang.String,​java.lang.String>> supplier)
      The default behaviour of this method is to call HttpServletResponse.setTrailerFields(java.util.function.Supplier<java.util.Map<java.lang.String, java.lang.String>>) on the wrapped response object.
      Specified by:
      setTrailerFields in interface HttpServletResponse
      Parameters:
      supplier - of trailer headers
      Since:
      Servlet 4.0
    • getTrailerFields

      public java.util.function.Supplier<java.util.Map<java.lang.String,​java.lang.String>> getTrailerFields()
      The default behaviour of this method is to call HttpServletResponse.getTrailerFields() on the wrapped response object.
      Specified by:
      getTrailerFields in interface HttpServletResponse
      Returns:
      supplier of trailer headers
      Since:
      Servlet 4.0