# Class ServletResponseWrapper

java.lang.Object
jakarta.servlet.ServletResponseWrapper

All Implemented Interfaces:
  `ServletResponse`

Direct Known Subclasses:
  `HttpServletResponseWrapper`

public class ServletResponseWrapper extends Object implements ServletResponse
Provides a convenient implementation of the ServletResponse 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
See Also:
  - `ServletResponse`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ServletResponseWrapper(ServletResponse response)`
  Creates a ServletResponse adaptor wrapping the given response object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `flushBuffer()`
  The default behavior of this method is to call flushBuffer() on the wrapped response object.
  `int`
  `getBufferSize()`
  The default behavior of this method is to return getBufferSize() on the wrapped response object.
  `String`
  `getCharacterEncoding()`
  The default behavior of this method is to return getCharacterEncoding() on the wrapped response object.
  `String`
  `getContentType()`
  The default behavior of this method is to return getContentType() on the wrapped response object.
  `Locale`
  `getLocale()`
  The default behavior of this method is to return getLocale() on the wrapped response object.
  `ServletOutputStream`
  `getOutputStream()`
  The default behavior of this method is to return getOutputStream() on the wrapped response object.
  `ServletResponse`
  `getResponse()`
  Return the wrapped ServletResponse object.
  `PrintWriter`
  `getWriter()`
  The default behavior of this method is to return getWriter() on the wrapped response object.
  `boolean`
  `isCommitted()`
  The default behavior of this method is to return isCommitted() on the wrapped response object.
  `boolean`
  `isWrapperFor(ServletResponse wrapped)`
  TODO SERVLET3 - Add comments
  `boolean`
  `isWrapperFor(Class<?> wrappedType)`
  TODO SERVLET3 - Add comments
  `void`
  `reset()`
  The default behavior of this method is to call reset() on the wrapped response object.
  `void`
  `resetBuffer()`
  The default behavior of this method is to call resetBuffer() on the wrapped response object.
  `void`
  `setBufferSize(int size)`
  The default behavior of this method is to call setBufferSize(int size) on the wrapped response object.
  `void`
  `setCharacterEncoding(String charset)`
  The default behavior of this method is to call setCharacterEncoding(String charset) on the wrapped response object.
  `void`
  `setCharacterEncoding(Charset encoding)`
  The default behavior of this method is to call `setCharacterEncoding(Charset)` on the wrapped response object.
  `void`
  `setContentLength(int len)`
  The default behavior of this method is to call setContentLength(int len) on the wrapped response object.
  `void`
  `setContentLengthLong(long length)`
  The default behavior of this method is to call setContentLengthLong(long len) on the wrapped response object.
  `void`
  `setContentType(String type)`
  The default behavior of this method is to call setContentType(String type) on the wrapped response object.
  `void`
  `setLocale(Locale loc)`
  The default behavior of this method is to call setLocale(Locale loc) on the wrapped response object.
  `void`
  `setResponse(ServletResponse response)`
  Sets the response being wrapped.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ServletResponseWrapper

    public ServletResponseWrapper(ServletResponse response)
    Creates a ServletResponse adaptor wrapping the given response object.
    Parameters:
      `response` - The response to wrap
    Throws:
      `IllegalArgumentException` - if the response is null.

- ## Method Details

  - ### getResponse

    public ServletResponse getResponse()
    Return the wrapped ServletResponse object.
    Returns:
      The wrapped ServletResponse object.

  - ### setResponse

    public void setResponse(ServletResponse response)
    Sets the response being wrapped.
    Parameters:
      `response` - The new response to wrap
    Throws:
      `IllegalArgumentException` - if the response is null.

  - ### setCharacterEncoding

    public void setCharacterEncoding(String charset)
    The default behavior of this method is to call setCharacterEncoding(String charset) on the wrapped response object.
    Specified by:
      `setCharacterEncoding` in interface `ServletResponse`
    Parameters:
      `charset` - a String specifying only the character set defined by IANA Character Sets (http://www.iana.org/assignments/character-sets)
    Since:
      Servlet 2.4
    See Also:
      - #setLocale
      - `ServletResponse.setCharacterEncoding(Charset)`

  - ### setCharacterEncoding

    public void setCharacterEncoding(Charset encoding)
    The default behavior of this method is to call `setCharacterEncoding(Charset)` on the wrapped response object.
    Specified by:
      `setCharacterEncoding` in interface `ServletResponse`
    Parameters:
      `encoding` - The encoding to use or `null`
    Since:
      Servlet 6.1
    See Also:
      - #setLocale
      - `ServletResponse.setCharacterEncoding(String)`

  - ### getCharacterEncoding

    public String getCharacterEncoding()
    The default behavior of this method is to return getCharacterEncoding() on the wrapped response object.
    Specified by:
      `getCharacterEncoding` in interface `ServletResponse`
    Returns:
      a `String` specifying the name of the character encoding, for example, `UTF-8`

  - ### getOutputStream

    public ServletOutputStream getOutputStream() throws IOException
    The default behavior of this method is to return getOutputStream() on the wrapped response object.
    Specified by:
      `getOutputStream` in interface `ServletResponse`
    Returns:
      a `ServletOutputStream` for writing binary data
    Throws:
      `IOException` - if an input or output exception occurred
    See Also:
      - `ServletResponse.getWriter()`

  - ### getWriter

    public PrintWriter getWriter() throws IOException
    The default behavior of this method is to return getWriter() on the wrapped response object.
    Specified by:
      `getWriter` in interface `ServletResponse`
    Returns:
      a `PrintWriter` object that can return character data to the client
    Throws:
      `IOException` - if an input or output exception occurred
    See Also:
      - `ServletResponse.getOutputStream()`
      - `ServletResponse.setCharacterEncoding(java.lang.String)`

  - ### setContentLength

    public void setContentLength(int len)
    The default behavior of this method is to call setContentLength(int len) on the wrapped response object.
    Specified by:
      `setContentLength` in interface `ServletResponse`
    Parameters:
      `len` - an integer specifying the length of the content being returned to the client; sets the Content-Length header

  - ### setContentLengthLong

    public void setContentLengthLong(long length)
    The default behavior of this method is to call setContentLengthLong(long len) on the wrapped response object.
    Specified by:
      `setContentLengthLong` in interface `ServletResponse`
    Parameters:
      `length` - an integer specifying the length of the content being returned to the client; sets the Content-Length header
    Since:
      Servlet 3.1

  - ### setContentType

    public void setContentType(String type)
    The default behavior of this method is to call setContentType(String type) on the wrapped response object.
    Specified by:
      `setContentType` in interface `ServletResponse`
    Parameters:
      `type` - a `String` specifying the MIME type of the content
    See Also:
      - `ServletResponse.setLocale(java.util.Locale)`
      - `ServletResponse.setCharacterEncoding(java.lang.String)`
      - `ServletResponse.getOutputStream()`
      - `ServletResponse.getWriter()`

  - ### getContentType

    public String getContentType()
    The default behavior of this method is to return getContentType() on the wrapped response object.
    Specified by:
      `getContentType` in interface `ServletResponse`
    Returns:
      a `String` specifying the content type, for example, `text/html; charset=UTF-8`, or null
    Since:
      Servlet 2.4

  - ### setBufferSize

    public void setBufferSize(int size)
    The default behavior of this method is to call setBufferSize(int size) on the wrapped response object.
    Specified by:
      `setBufferSize` in interface `ServletResponse`
    Parameters:
      `size` - the preferred buffer size
    See Also:
      - `ServletResponse.getBufferSize()`
      - `ServletResponse.flushBuffer()`
      - `ServletResponse.isCommitted()`
      - `ServletResponse.reset()`

  - ### getBufferSize

    public int getBufferSize()
    The default behavior of this method is to return getBufferSize() on the wrapped response object.
    Specified by:
      `getBufferSize` in interface `ServletResponse`
    Returns:
      the actual buffer size used
    See Also:
      - `ServletResponse.setBufferSize(int)`
      - `ServletResponse.flushBuffer()`
      - `ServletResponse.isCommitted()`
      - `ServletResponse.reset()`

  - ### flushBuffer

    public void flushBuffer() throws IOException
    The default behavior of this method is to call flushBuffer() on the wrapped response object.
    Specified by:
      `flushBuffer` in interface `ServletResponse`
    Throws:
      `IOException` - if an I/O occurs during the flushing of the response
    See Also:
      - `ServletResponse.setBufferSize(int)`
      - `ServletResponse.getBufferSize()`
      - `ServletResponse.isCommitted()`
      - `ServletResponse.reset()`

  - ### isCommitted

    public boolean isCommitted()
    The default behavior of this method is to return isCommitted() on the wrapped response object.
    Specified by:
      `isCommitted` in interface `ServletResponse`
    Returns:
      a boolean indicating if the response has been committed
    See Also:
      - `ServletResponse.setBufferSize(int)`
      - `ServletResponse.getBufferSize()`
      - `ServletResponse.flushBuffer()`
      - `ServletResponse.reset()`

  - ### reset

    public void reset()
    The default behavior of this method is to call reset() on the wrapped response object.
    Specified by:
      `reset` in interface `ServletResponse`
    See Also:
      - `ServletResponse.setBufferSize(int)`
      - `ServletResponse.getBufferSize()`
      - `ServletResponse.flushBuffer()`
      - `ServletResponse.isCommitted()`

  - ### resetBuffer

    public void resetBuffer()
    The default behavior of this method is to call resetBuffer() on the wrapped response object.
    Specified by:
      `resetBuffer` in interface `ServletResponse`
    See Also:
      - `ServletResponse.setBufferSize(int)`
      - `ServletResponse.getBufferSize()`
      - `ServletResponse.isCommitted()`
      - `ServletResponse.reset()`

  - ### setLocale

    public void setLocale(Locale loc)
    The default behavior of this method is to call setLocale(Locale loc) on the wrapped response object.
    Specified by:
      `setLocale` in interface `ServletResponse`
    Parameters:
      `loc` - the locale of the response
    See Also:
      - `ServletResponse.getLocale()`
      - `ServletResponse.setContentType(java.lang.String)`
      - `ServletResponse.setCharacterEncoding(String)`
      - `ServletResponse.setCharacterEncoding(Charset)`

  - ### getLocale

    public Locale getLocale()
    The default behavior of this method is to return getLocale() on the wrapped response object.
    Specified by:
      `getLocale` in interface `ServletResponse`
    Returns:
      The locale specified for this response using the `ServletResponse.setLocale(java.util.Locale)` method. If no locale has been specified, the container's default locale is returned.
    See Also:
      - `ServletResponse.setLocale(java.util.Locale)`

  - ### isWrapperFor

    public boolean isWrapperFor(ServletResponse wrapped)
    TODO SERVLET3 - Add comments
    Parameters:
      `wrapped` - The response to compare to the wrapped response
    Returns:
      `true` if the response wrapped by this wrapper (or series of wrappers) is the same as the supplied response, otherwise `false`
    Since:
      Servlet 3.0

  - ### isWrapperFor

    public boolean isWrapperFor(Class<?> wrappedType)
    TODO SERVLET3 - Add comments
    Parameters:
      `wrappedType` - The class to compare to the class of the wrapped response
    Returns:
      `true` if the response wrapped by this wrapper (or series of wrappers) is the same type as the supplied type, otherwise `false`
    Since:
      Servlet 3.0