## com.google.gwt.user.server.rpc
Class RPCServletUtils

    java.lang.Object
      com.google.gwt.user.server.rpc.RPCServletUtils

    public class RPCServletUtils

extends java.lang.Object

Utility class containing helper methods used by servlets that integrate with the RPC system.

Method Summary
`static boolean` | `acceptsGzipEncoding(javax.servlet.http.HttpServletRequest request)` Returns `true` if the `HttpServletRequest` accepts Gzip encoding.
`static boolean` | `exceedsUncompressedContentLengthLimit(java.lang.String content)` Returns `true` if the response content's estimated UTF-8 byte length exceeds 256 bytes.
`static java.lang.String` | `readContentAsUtf8(javax.servlet.http.HttpServletRequest request)` Returns the content of an `HttpServletRequest` by decoding it using the UTF-8 charset.
`static java.lang.String` | `readContentAsUtf8(javax.servlet.http.HttpServletRequest request, boolean checkHeaders)` Returns the content of an `HttpServletRequest` by decoding it using the UTF-8 charset.
`static boolean` | `shouldGzipResponseContent(javax.servlet.http.HttpServletRequest request, java.lang.String responseContent)` Returns `true` if the request accepts gzip encoding and the the response content's estimated UTF-8 byte length exceeds 256 bytes.
`static void` | `writeResponse(javax.servlet.ServletContext servletContext, javax.servlet.http.HttpServletResponse response, java.lang.String responseContent, boolean gzipResponse)` Write the response content into the `HttpServletResponse`.
`static void` | `writeResponseForUnexpectedFailure(javax.servlet.ServletContext servletContext, javax.servlet.http.HttpServletResponse response, java.lang.Throwable failure)` Called when the servlet itself has a problem, rather than the invoked third-party method.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### acceptsGzipEncoding

    public static boolean acceptsGzipEncoding(javax.servlet.http.HttpServletRequest request)

  Returns `true` if the `HttpServletRequest` accepts Gzip encoding. This is done by checking that the accept-encoding header specifies gzip as a supported encoding.

  Parameters:
    `request` - the request instance to test for gzip encoding acceptance
  Returns:
    `true` if the `HttpServletRequest` accepts Gzip encoding

### exceedsUncompressedContentLengthLimit

    public static boolean exceedsUncompressedContentLengthLimit(java.lang.String content)

  Returns `true` if the response content's estimated UTF-8 byte length exceeds 256 bytes.

  Parameters:
    `content` - the contents of the response
  Returns:
    `true` if the response content's estimated UTF-8 byte length exceeds 256 bytes

### readContentAsUtf8

    public static java.lang.String readContentAsUtf8(javax.servlet.http.HttpServletRequest request)
                                              throws java.io.IOException,
                                                     javax.servlet.ServletException

  Returns the content of an `HttpServletRequest` by decoding it using the UTF-8 charset.

  Parameters:
    `request` - the servlet request whose content we want to read
  Returns:
    the content of an `HttpServletRequest` by decoding it using the UTF-8 charset
  Throws:
    `java.io.IOException` - if the requests input stream cannot be accessed, read from or closed
    `javax.servlet.ServletException` - if the content length of the request is not specified of if the request's content type is not 'text/x-gwt-rpc' and 'charset=utf-8'

### readContentAsUtf8

    public static java.lang.String readContentAsUtf8(javax.servlet.http.HttpServletRequest request,
                                                     boolean checkHeaders)
                                              throws java.io.IOException,
                                                     javax.servlet.ServletException

  Returns the content of an `HttpServletRequest` by decoding it using the UTF-8 charset.

  Parameters:
    `request` - the servlet request whose content we want to read
    `checkHeaders` - Specify 'true' to check the Content-Type header to see that it matches the expected value 'text/x-gwt-rpc' and the content encoding is UTF-8. Disabling this check may allow some types of cross type security attacks.
  Returns:
    the content of an `HttpServletRequest` by decoding it using the UTF-8 charset
  Throws:
    `java.io.IOException` - if the requests input stream cannot be accessed, read from or closed
    `javax.servlet.ServletException` - if the content length of the request is not specified of if the request's content type is not 'text/x-gwt-rpc' and 'charset=utf-8'

### shouldGzipResponseContent

    public static boolean shouldGzipResponseContent(javax.servlet.http.HttpServletRequest request,
                                                    java.lang.String responseContent)

  Returns `true` if the request accepts gzip encoding and the the response content's estimated UTF-8 byte length exceeds 256 bytes.

  Parameters:
    `request` - the request associated with the response content
    `responseContent` - a string that will be
  Returns:
    `true` if the request accepts gzip encoding and the the response content's estimated UTF-8 byte length exceeds 256 bytes

### writeResponse

    public static void writeResponse(javax.servlet.ServletContext servletContext,
                                     javax.servlet.http.HttpServletResponse response,
                                     java.lang.String responseContent,
                                     boolean gzipResponse)
                              throws java.io.IOException

  Write the response content into the `HttpServletResponse`. If `gzipResponse` is `true`, the response content will be gzipped prior to being written into the response.

  Parameters:
    `servletContext` - servlet context for this response
    `response` - response instance
    `responseContent` - a string containing the response content
    `gzipResponse` - if `true` the response content will be gzip encoded before being written into the response
  Throws:
    `java.io.IOException` - if reading, writing, or closing the response's output stream fails

### writeResponseForUnexpectedFailure

    public static void writeResponseForUnexpectedFailure(javax.servlet.ServletContext servletContext,
                                                         javax.servlet.http.HttpServletResponse response,
                                                         java.lang.Throwable failure)

  Called when the servlet itself has a problem, rather than the invoked third-party method. It writes a simple 500 message back to the client.

  Parameters:
    `servletContext` -
    `response` -
    `failure` -