Package org.apache.tapestry5.http.internal.services

## Class ResponseImpl

- java.lang.Object
- - org.apache.tapestry5.http.internal.services.ResponseImpl

- All Implemented Interfaces:
    `Response`

      public class ResponseImpl
      extends java.lang.Object
      implements Response

  Implementation of `Response` that wraps around an underlying `HttpServletResponse`.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ResponseImpl​(HttpServletRequest request, HttpServletResponse response)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addHeader​(java.lang.String name, java.lang.String value)` | Adds a response header with the given name and value, not overwriting any previous values which may have already been added.
    `void` | `disableCompression()` | Invoked to indicate that the response content is either already compressed, or is not compressable.
    `java.lang.String` | `encodeRedirectURL​(java.lang.String URL)` | Encodes the URL for use as a redirect, ensuring that a session id is included (if a session exists, and as necessary depending on the client browser's use of cookies).
    `java.lang.String` | `encodeURL​(java.lang.String URL)` | Encodes the URL, ensuring that a session id is included (if a session exists, and as necessary depending on the client browser's use of cookies).
    `java.io.OutputStream` | `getOutputStream​(java.lang.String contentType)` | Returns an OutputStream to which byte-oriented output may be sent.
    `java.io.PrintWriter` | `getPrintWriter​(java.lang.String contentType)` | Returns a PrintWriter object to which output may be sent.
    `boolean` | `isCommitted()` | Returns true if the response has already been sent, either as a redirect or as a stream of content.
    `void` | `sendError​(int sc, java.lang.String message)` | Sends an error response to the client using the specified status.
    `void` | `sendRedirect​(java.lang.String URL)` | Sends a redirect to the client.
    `void` | `sendRedirect​(Link link)` | Sends a redirect to a link.
    `void` | `setContentLength​(int length)` | Sets the length of the content body in the response; this method sets the HTTP Content-Length header.
    `void` | `setDateHeader​(java.lang.String name, long date)` | Sets a response header with the given name and date-value.
    `void` | `setHeader​(java.lang.String name, java.lang.String value)` | Sets a response header with the given name and value.
    `void` | `setIntHeader​(java.lang.String name, int value)` | Sets a response header with the given name and integer value.
    `void` | `setStatus​(int sc)` | Sets the status code for this response.

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

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

- - ### Constructor Detail

    - #### ResponseImpl

          public ResponseImpl​(HttpServletRequest request,
                              HttpServletResponse response)

  - ### Method Detail

    - #### getPrintWriter

          public java.io.PrintWriter getPrintWriter​(java.lang.String contentType)
                                             throws java.io.IOException

      Description copied from interface: `Response`
      Returns a PrintWriter object to which output may be sent. Invoking flush() on the writer will commit the output.
      Specified by:
        `getPrintWriter` in interface `Response`
      Parameters:
        `contentType` - the MIME content type for the output, typically "text/html"
      Throws:
        `java.io.IOException`

    - #### encodeURL

          public java.lang.String encodeURL​(java.lang.String URL)

      Description copied from interface: `Response`
      Encodes the URL, ensuring that a session id is included (if a session exists, and as necessary depending on the client browser's use of cookies).
      Specified by:
        `encodeURL` in interface `Response`
      Returns:
        the same URL or a different one with additional information to track the user session

    - #### encodeRedirectURL

          public java.lang.String encodeRedirectURL​(java.lang.String URL)

      Description copied from interface: `Response`
      Encodes the URL for use as a redirect, ensuring that a session id is included (if a session exists, and as necessary depending on the client browser's use of cookies).
      Specified by:
        `encodeRedirectURL` in interface `Response`
      Returns:
        the same URL or a different one with additional information to track the user session

    - #### sendRedirect

          public void sendRedirect​(java.lang.String URL)
                            throws java.io.IOException

      Description copied from interface: `Response`
      Sends a redirect to the client.
      Specified by:
        `sendRedirect` in interface `Response`
      Parameters:
        `URL` - full or partial (relative) URL to send to the client
      Throws:
        `java.io.IOException`
      See Also:
        `Response.encodeRedirectURL(String)`

    - #### sendRedirect

          public void sendRedirect​(Link link)
                            throws java.io.IOException

      Description copied from interface: `Response`
      Sends a redirect to a link.
      Specified by:
        `sendRedirect` in interface `Response`
      Parameters:
        `link` - link to redirect to.
      Throws:
        `java.io.IOException`

    - #### setStatus

          public void setStatus​(int sc)

      Description copied from interface: `Response`
      Sets the status code for this response. This method is used to set the return status code when there is no error (for example, for the status codes SC_OK or SC_MOVED_TEMPORARILY). If there is an error, and the caller wishes to invoke an error-page defined in the web applicaion, the `sendError` method should be used instead.
      Specified by:
        `setStatus` in interface `Response`
      Parameters:
        `sc` - the status code

    - #### getOutputStream

          public java.io.OutputStream getOutputStream​(java.lang.String contentType)
                                               throws java.io.IOException

      Description copied from interface: `Response`
      Returns an OutputStream to which byte-oriented output may be sent. Invoking flush() on the stream will commit the output.
      Specified by:
        `getOutputStream` in interface `Response`
      Parameters:
        `contentType` - the MIME content type for the output, often "application/octet-stream" or "text/plain" or one of several others
      Throws:
        `java.io.IOException`

    - #### sendError

          public void sendError​(int sc,
                                java.lang.String message)
                         throws java.io.IOException

      Description copied from interface: `Response`
      Sends an error response to the client using the specified status. The server defaults to creating the response to look like an HTML-formatted server error page containing the specified message, setting the content type to "text/html", leaving cookies and other headers unmodified. If an error-page declaration has been made for the web application corresponding to the status code passed in, it will be served back in preference to the suggested msg parameter. If the response has already been committed, this method throws an IllegalStateException. After using this method, the response should be considered to be committed and should not be written to.
      Specified by:
        `sendError` in interface `Response`
      Parameters:
        `sc` - the error status code
        `message` - the descriptive message
      Throws:
        `java.io.IOException` - If an input or output exception occurs

    - #### setContentLength

          public void setContentLength​(int length)

      Description copied from interface: `Response`
      Sets the length of the content body in the response; this method sets the HTTP Content-Length header.
      Specified by:
        `setContentLength` in interface `Response`
      Parameters:
        `length` - the length of the content

    - #### setDateHeader

          public void setDateHeader​(java.lang.String name,
                                    long date)

      Description copied from interface: `Response`
      Sets a response header with the given name and date-value. The date is specified in terms of milliseconds since the epoch. If the header had already been set, the new value overwrites the previous one.
      Specified by:
        `setDateHeader` in interface `Response`
      Parameters:
        `name` - the name of the header to set
        `date` - the assigned date value

    - #### setHeader

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

      Description copied from interface: `Response`
      Sets a response header with the given name and value. If the header had already been set, the new value overwrites the previous one.
      Specified by:
        `setHeader` in interface `Response`
      Parameters:
        `name` - the name of the header to set
        `value` - the assigned value

    - #### addHeader

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

      Description copied from interface: `Response`
      Adds a response header with the given name and value, not overwriting any previous values which may have already been added.
      Specified by:
        `addHeader` in interface `Response`
      Parameters:
        `name` - the name of the header to add
        `value` - the assigned value

    - #### setIntHeader

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

      Description copied from interface: `Response`
      Sets a response header with the given name and integer value. If the header had already been set, the new value overwrites the previous one.
      Specified by:
        `setIntHeader` in interface `Response`
      Parameters:
        `name` - the name of the header to set
        `value` - the assigned integer value

    - #### isCommitted

          public boolean isCommitted()

      Description copied from interface: `Response`
      Returns true if the response has already been sent, either as a redirect or as a stream of content.
      Specified by:
        `isCommitted` in interface `Response`
      Returns:
        true if response already sent

    - #### disableCompression

          public void disableCompression()

      Description copied from interface: `Response`
      Invoked to indicate that the response content is either already compressed, or is not compressable.
      Specified by:
        `disableCompression` in interface `Response`