Class ServletUtils


  • public final class ServletUtils
    extends Object
    Common utility functions for servlets.
    • Method Detail

      • getRepository

        public static Repository getRepository​(javax.servlet.ServletRequest req)
        Get the selected repository from the request.
        Parameters:
        req - the current request.
        Returns:
        the repository; never null.
        Throws:
        IllegalStateException - the repository was not set by the filter, the servlet is being invoked incorrectly and the programmer should ensure the filter runs before the servlet.
        See Also:
        ATTRIBUTE_REPOSITORY
      • getInputStream

        public static InputStream getInputStream​(javax.servlet.http.HttpServletRequest req)
                                          throws IOException
        Open the request input stream, automatically inflating if necessary.

        This method automatically inflates the input stream if the request Content-Encoding header was set to gzip or the legacy x-gzip.

        Parameters:
        req - the incoming request whose input stream needs to be opened.
        Returns:
        an input stream to read the raw, uncompressed request body.
        Throws:
        IOException - if an input or output exception occurred.
      • consumeRequestBody

        public static void consumeRequestBody​(javax.servlet.http.HttpServletRequest req)
        Consume the entire request body, if one was supplied.
        Parameters:
        req - the request whose body must be consumed.
      • consumeRequestBody

        public static void consumeRequestBody​(InputStream in)
        Consume the rest of the input stream and discard it.
        Parameters:
        in - the stream to discard, closed if not null.
      • sendPlainText

        public static void sendPlainText​(String content,
                                         javax.servlet.http.HttpServletRequest req,
                                         javax.servlet.http.HttpServletResponse rsp)
                                  throws IOException
        Send a plain text response to a GET or HEAD HTTP request.

        The text response is encoded in the Git character encoding, UTF-8.

        If the user agent supports a compressed transfer encoding and the content is large enough, the content may be compressed before sending.

        The ETag and Content-Length headers are automatically set by this method. Content-Encoding is conditionally set if the user agent supports a compressed transfer. Callers are responsible for setting any cache control headers.

        Parameters:
        content - to return to the user agent as this entity's body.
        req - the incoming request.
        rsp - the outgoing response.
        Throws:
        IOException - the servlet API rejected sending the body.
      • send

        public static void send​(byte[] content,
                                javax.servlet.http.HttpServletRequest req,
                                javax.servlet.http.HttpServletResponse rsp)
                         throws IOException
        Send a response to a GET or HEAD HTTP request.

        If the user agent supports a compressed transfer encoding and the content is large enough, the content may be compressed before sending.

        The ETag and Content-Length headers are automatically set by this method. Content-Encoding is conditionally set if the user agent supports a compressed transfer. Callers are responsible for setting Content-Type and any cache control headers.

        Parameters:
        content - to return to the user agent as this entity's body.
        req - the incoming request.
        rsp - the outgoing response.
        Throws:
        IOException - the servlet API rejected sending the body.