Class ResourceProviderServlet

  • All Implemented Interfaces:
    jakarta.servlet.Servlet, jakarta.servlet.ServletConfig, java.io.Serializable

    public class ResourceProviderServlet
    extends jakarta.servlet.http.HttpServlet
    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void doGet​(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)  
      protected void doHead​(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)  
      static java.lang.String encodeURI​(java.lang.String string)
      URI-encode the given string using UTF-8.
      static java.lang.String encodeURL​(java.lang.String string)
      URL-encode the given string using UTF-8.
      protected java.lang.String getAttachmentName​(jakarta.servlet.http.HttpServletRequest request, java.io.File file)
      Returns the file name to be used in Content-Disposition header.
      protected void handleNotFound​(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
      Handles the case when the file is not found.
      static void setCacheHeaders​(jakarta.servlet.http.HttpServletResponse response, long expires)
      Set the cache headers.
      static void setNoCacheHeaders​(jakarta.servlet.http.HttpServletResponse response)
      Set the no-cache headers.
      • Methods inherited from class jakarta.servlet.http.HttpServlet

        doDelete, doOptions, doPost, doPut, doTrace, getLastModified, service, service
      • Methods inherited from class jakarta.servlet.GenericServlet

        destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, init, log, log
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ResourceProviderServlet

        public ResourceProviderServlet​(ResourceProvider resourceProvider)
    • Method Detail

      • doHead

        protected void doHead​(jakarta.servlet.http.HttpServletRequest request,
                              jakarta.servlet.http.HttpServletResponse response)
                       throws jakarta.servlet.ServletException,
                              java.io.IOException
        Overrides:
        doHead in class jakarta.servlet.http.HttpServlet
        Throws:
        jakarta.servlet.ServletException
        java.io.IOException
      • doGet

        protected void doGet​(jakarta.servlet.http.HttpServletRequest request,
                             jakarta.servlet.http.HttpServletResponse response)
                      throws jakarta.servlet.ServletException,
                             java.io.IOException
        Overrides:
        doGet in class jakarta.servlet.http.HttpServlet
        Throws:
        jakarta.servlet.ServletException
        java.io.IOException
      • handleNotFound

        protected void handleNotFound​(jakarta.servlet.http.HttpServletRequest request,
                                      jakarta.servlet.http.HttpServletResponse response)
                               throws java.io.IOException
        Handles the case when the file is not found.

        The default implementation sends a HTTP 404 error.

        Parameters:
        request - The involved HTTP servlet request.
        response - The involved HTTP servlet response.
        Throws:
        java.io.IOException - When something fails at I/O level.
      • getAttachmentName

        protected java.lang.String getAttachmentName​(jakarta.servlet.http.HttpServletRequest request,
                                                     java.io.File file)
        Returns the file name to be used in Content-Disposition header. This does not need to be URL-encoded as this will be taken care of.

        The default implementation returns File.getName().

        Parameters:
        request - The involved HTTP servlet request.
        file - The involved file.
        Returns:
        The file name to be used in Content-Disposition header.
      • encodeURL

        public static java.lang.String encodeURL​(java.lang.String string)
        URL-encode the given string using UTF-8.
        Parameters:
        string - The string to be URL-encoded using UTF-8.
        Returns:
        The given string, URL-encoded using UTF-8, or null if null was given.
        Throws:
        java.lang.UnsupportedOperationException - When this platform does not support UTF-8.
      • encodeURI

        public static java.lang.String encodeURI​(java.lang.String string)
        URI-encode the given string using UTF-8. URIs (paths and filenames) have different encoding rules as compared to URL query string parameters. URLEncoder is actually only for www (HTML) form based query string parameter values (as used when a webbrowser submits a HTML form). URI encoding has a lot in common with URL encoding, but the space has to be %20 and some chars doesn't necessarily need to be encoded.
        Parameters:
        string - The string to be URI-encoded using UTF-8.
        Returns:
        The given string, URI-encoded using UTF-8, or null if null was given.
        Throws:
        java.lang.UnsupportedOperationException - When this platform does not support UTF-8.
      • setCacheHeaders

        public static void setCacheHeaders​(jakarta.servlet.http.HttpServletResponse response,
                                           long expires)

        Set the cache headers. If the expires argument is larger than 0 seconds, then the following headers will be set:

        • Cache-Control: public,max-age=[expiration time in seconds],must-revalidate
        • Expires: [expiration date of now plus expiration time in seconds]

        Else the method will delegate to setNoCacheHeaders(HttpServletResponse).

        Parameters:
        response - The HTTP servlet response to set the headers on.
        expires - The expire time in seconds (not milliseconds!).
      • setNoCacheHeaders

        public static void setNoCacheHeaders​(jakarta.servlet.http.HttpServletResponse response)

        Set the no-cache headers. The following headers will be set:

        • Cache-Control: no-cache,no-store,must-revalidate
        • Expires: [expiration date of 0]
        • Pragma: no-cache
        Set the no-cache headers.
        Parameters:
        response - The HTTP servlet response to set the headers on.