Package org.apache.coyote

## Class Response

- java.lang.Object
- - org.apache.coyote.Response

-     public final class Response
      extends java.lang.Object

  Response object.
  Author:
    James Duncan Davidson [duncan@eng.sun.com], Jason Hunter [jch@eng.sun.com], James Todd [gonzo@eng.sun.com], Harish Prabandham, Hans Bergsten [hans@gefionsoftware.com], Remy Maucherat

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Response()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `action​(ActionCode actionCode, java.lang.Object param)` |
    `void` | `addHeader​(java.lang.String name, java.lang.String value)` |
    `void` | `addHeader​(java.lang.String name, java.lang.String value, java.nio.charset.Charset charset)` |
    `boolean` | `checkRegisterForWrite()` |
    `boolean` | `containsHeader​(java.lang.String name)` | Does the response contain the given header.
    `void` | `doWrite​(java.nio.ByteBuffer chunk)` | Write a chunk of bytes.
    `long` | `getBytesWritten​(boolean flush)` | Bytes written to socket - i.e. after compression, chunking, etc.
    `java.lang.String` | `getCharacterEncoding()` |
    `java.nio.charset.Charset` | `getCharset()` |
    `long` | `getCommitTime()` | Return the time the response was committed (based on System.currentTimeMillis).
    `long` | `getCommitTimeNanos()` | Return the time the response was committed (based on System.nanoTime).
    `java.lang.String` | `getContentLanguage()` | Return the content language.
    `int` | `getContentLength()` |
    `long` | `getContentLengthLong()` |
    `java.lang.String` | `getContentType()` |
    `long` | `getContentWritten()` | Bytes written by application - i.e. before compression, chunking, etc.
    `java.lang.Exception` | `getErrorException()` | Get the Exception that occurred during the writing of the response.
    `java.util.Locale` | `getLocale()` |
    `java.lang.String` | `getMessage()` | Get the status message.
    `MimeHeaders` | `getMimeHeaders()` |
    `java.lang.Object` | `getNote​(int pos)` |
    `Request` | `getRequest()` |
    `int` | `getStatus()` |
    `java.util.function.Supplier<java.util.Map<java.lang.String,​java.lang.String>>` | `getTrailerFields()` |
    `WriteListener` | `getWriteListener()` |
    `boolean` | `isCommitted()` |
    `boolean` | `isError()` | Error flag accessor.
    `boolean` | `isErrorReportRequired()` |
    `boolean` | `isExceptionPresent()` |
    `boolean` | `isReady()` |
    `void` | `onWritePossible()` |
    `void` | `recycle()` |
    `void` | `reset()` |
    `void` | `sendHeaders()` | Signal that we're done with the headers, and body will follow.
    `void` | `setCharacterEncoding​(java.lang.String characterEncoding)` | Overrides the character encoding used in the body of the response.
    `void` | `setCommitted​(boolean v)` |
    `void` | `setContentLength​(long contentLength)` |
    `void` | `setContentType​(java.lang.String type)` | Sets the content type.
    `void` | `setContentTypeNoCharset​(java.lang.String type)` |
    `boolean` | `setError()` | Set the error flag.
    `void` | `setErrorException​(java.lang.Exception ex)` | Set the error Exception that occurred during the writing of the response processing.
    `boolean` | `setErrorReported()` |
    `void` | `setHeader​(java.lang.String name, java.lang.String value)` |
    `protected void` | `setHook​(ActionHook hook)` |
    `void` | `setLocale​(java.util.Locale locale)` | Called explicitly by user to set the Content-Language and the default encoding.
    `void` | `setMessage​(java.lang.String message)` | Set the status message.
    `void` | `setNote​(int pos, java.lang.Object value)` |
    `void` | `setOutputBuffer​(OutputBuffer outputBuffer)` |
    `void` | `setRequest​(Request req)` |
    `void` | `setStatus​(int status)` | Set the response status.
    `void` | `setTrailerFields​(java.util.function.Supplier<java.util.Map<java.lang.String,​java.lang.String>> supplier)` |
    `void` | `setWriteListener​(WriteListener listener)` |

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

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

- - ### Constructor Detail

    - #### Response

          public Response()

  - ### Method Detail

    - #### getRequest

          public Request getRequest()

    - #### setRequest

          public void setRequest​(Request req)

    - #### setOutputBuffer

          public void setOutputBuffer​(OutputBuffer outputBuffer)

    - #### getMimeHeaders

          public MimeHeaders getMimeHeaders()

    - #### setHook

          protected void setHook​(ActionHook hook)

    - #### setNote

          public final void setNote​(int pos,
                                    java.lang.Object value)

    - #### getNote

          public final java.lang.Object getNote​(int pos)

    - #### action

          public void action​(ActionCode actionCode,
                             java.lang.Object param)

    - #### getStatus

          public int getStatus()

    - #### setStatus

          public void setStatus​(int status)

      Set the response status.
      Parameters:
        `status` - The status value to set

    - #### getMessage

          public java.lang.String getMessage()

      Get the status message.
      Returns:
        The message associated with the current status

    - #### setMessage

          public void setMessage​(java.lang.String message)

      Set the status message.
      Parameters:
        `message` - The status message to set

    - #### isCommitted

          public boolean isCommitted()

    - #### setCommitted

          public void setCommitted​(boolean v)

    - #### getCommitTime

          public long getCommitTime()

      Return the time the response was committed (based on System.currentTimeMillis).
      Returns:
        the time the response was committed

    - #### getCommitTimeNanos

          public long getCommitTimeNanos()

      Return the time the response was committed (based on System.nanoTime).
      Returns:
        the time the response was committed

    - #### setErrorException

          public void setErrorException​(java.lang.Exception ex)

      Set the error Exception that occurred during the writing of the response processing.
      Parameters:
        `ex` - The exception that occurred

    - #### getErrorException

          public java.lang.Exception getErrorException()

      Get the Exception that occurred during the writing of the response.
      Returns:
        The exception that occurred

    - #### isExceptionPresent

          public boolean isExceptionPresent()

    - #### setError

          public boolean setError()

      Set the error flag.
      Returns:
        `false` if the error flag was already set

    - #### isError

          public boolean isError()

      Error flag accessor.
      Returns:
        `true` if the response has encountered an error

    - #### isErrorReportRequired

          public boolean isErrorReportRequired()

    - #### setErrorReported

          public boolean setErrorReported()

    - #### reset

          public void reset()
                     throws java.lang.IllegalStateException

      Throws:
        `java.lang.IllegalStateException`

    - #### containsHeader

          public boolean containsHeader​(java.lang.String name)

      Does the response contain the given header.
      Warning: This method always returns `false` for Content-Type and Content-Length.
      Parameters:
        `name` - The name of the header of interest
      Returns:
        `true` if the response contains the header.

    - #### setHeader

          public void setHeader​(java.lang.String name,
                                java.lang.String value)

    - #### addHeader

          public void addHeader​(java.lang.String name,
                                java.lang.String value)

    - #### addHeader

          public void addHeader​(java.lang.String name,
                                java.lang.String value,
                                java.nio.charset.Charset charset)

    - #### setTrailerFields

          public void setTrailerFields​(java.util.function.Supplier<java.util.Map<java.lang.String,​java.lang.String>> supplier)

    - #### getTrailerFields

          public java.util.function.Supplier<java.util.Map<java.lang.String,​java.lang.String>> getTrailerFields()

    - #### sendHeaders

          public void sendHeaders()

      Signal that we're done with the headers, and body will follow. Any implementation needs to notify ContextManager, to allow interceptors to fix headers.

    - #### getLocale

          public java.util.Locale getLocale()

    - #### setLocale

          public void setLocale​(java.util.Locale locale)

      Called explicitly by user to set the Content-Language and the default encoding.
      Parameters:
        `locale` - The locale to use for this response

    - #### getContentLanguage

          public java.lang.String getContentLanguage()

      Return the content language.
      Returns:
        The language code for the language currently associated with this response

    - #### setCharacterEncoding

          public void setCharacterEncoding​(java.lang.String characterEncoding)
                                    throws java.io.UnsupportedEncodingException

      Overrides the character encoding used in the body of the response. This method must be called prior to writing output using getWriter().
      Parameters:
        `characterEncoding` - The name of character encoding.
      Throws:
        `java.io.UnsupportedEncodingException` - If the specified name is not recognised

    - #### getCharset

          public java.nio.charset.Charset getCharset()

    - #### getCharacterEncoding

          public java.lang.String getCharacterEncoding()

      Returns:
        The name of the current encoding

    - #### setContentType

          public void setContentType​(java.lang.String type)

      Sets the content type. This method must preserve any response charset that may already have been set via a call to response.setContentType(), response.setLocale(), or response.setCharacterEncoding().
      Parameters:
        `type` - the content type

    - #### setContentTypeNoCharset

          public void setContentTypeNoCharset​(java.lang.String type)

    - #### getContentType

          public java.lang.String getContentType()

    - #### setContentLength

          public void setContentLength​(long contentLength)

    - #### getContentLength

          public int getContentLength()

    - #### getContentLengthLong

          public long getContentLengthLong()

    - #### doWrite

          public void doWrite​(java.nio.ByteBuffer chunk)
                       throws java.io.IOException

      Write a chunk of bytes.
      Parameters:
        `chunk` - The ByteBuffer to write
      Throws:
        `java.io.IOException` - If an I/O error occurs during the write

    - #### recycle

          public void recycle()

    - #### getContentWritten

          public long getContentWritten()

      Bytes written by application - i.e. before compression, chunking, etc.
      Returns:
        The total number of bytes written to the response by the application. This will not be the number of bytes written to the network which may be more or less than this value.

    - #### getBytesWritten

          public long getBytesWritten​(boolean flush)

      Bytes written to socket - i.e. after compression, chunking, etc.
      Parameters:
        `flush` - Should any remaining bytes be flushed before returning the total? If `false` bytes remaining in the buffer will not be included in the returned value
      Returns:
        The total number of bytes written to the socket for this response

    - #### getWriteListener

          public WriteListener getWriteListener()

    - #### setWriteListener

          public void setWriteListener​(WriteListener listener)

    - #### isReady

          public boolean isReady()

    - #### checkRegisterForWrite

          public boolean checkRegisterForWrite()

    - #### onWritePossible

          public void onWritePossible()
                               throws java.io.IOException

      Throws:
        `java.io.IOException`