Class UriUtil

java.lang.Object
org.apache.tomcat.util.buf.UriUtil

public final class UriUtil extends Object
Utility class for working with URIs and URLs.
  • Method Details

    • hasScheme

      public static boolean hasScheme(CharSequence uri)
      Determine if a URI string has a scheme component.
      Parameters:
      uri - The URI to test
      Returns:
      true if a scheme is present, otherwise {code @false}
    • buildJarUrl

      public static URL buildJarUrl(File jarFile) throws IOException
      Builds a JAR URL for the given JAR file.
      Parameters:
      jarFile - the JAR file
      Returns:
      the JAR URL
      Throws:
      IOException - if URL creation fails
    • buildJarUrl

      public static URL buildJarUrl(File jarFile, String entryPath) throws IOException
      Builds a JAR URL for the given JAR file and entry path.
      Parameters:
      jarFile - the JAR file
      entryPath - the entry path within the JAR
      Returns:
      the JAR URL
      Throws:
      IOException - if URL creation fails
    • buildJarUrl

      public static URL buildJarUrl(String fileUrlString) throws IOException
      Builds a JAR URL for the given file URL string.
      Parameters:
      fileUrlString - the file URL string
      Returns:
      the JAR URL
      Throws:
      IOException - if URL creation fails
    • buildJarUrl

      public static URL buildJarUrl(String fileUrlString, String entryPath) throws IOException
      Builds a JAR URL for the given file URL string and entry path.
      Parameters:
      fileUrlString - the file URL string
      entryPath - the entry path within the JAR
      Returns:
      the JAR URL
      Throws:
      IOException - if URL creation fails
    • buildJarSafeUrl

      public static URL buildJarSafeUrl(File file) throws IOException
      Builds a JAR-safe URL for the given file, with special characters escaped.
      Parameters:
      file - the file
      Returns:
      the JAR-safe URL
      Throws:
      IOException - if URL creation fails
    • warToJar

      public static URL warToJar(URL warUrl) throws IOException
      Convert a URL of the form war:file:... to jar:file:....
      Parameters:
      warUrl - The WAR URL to convert
      Returns:
      The equivalent JAR URL
      Throws:
      IOException - If the conversion fails
    • getWarSeparator

      public static String getWarSeparator()
      Returns the separator used in WAR URLs.
      Returns:
      the WAR separator string
    • isAbsoluteURI

      public static boolean isAbsoluteURI(String path)
      Does the provided path start with file:/ or <protocol>://.
      Parameters:
      path - The path to test
      Returns:
      true if the supplied path starts with one of the recognised sequences.
    • resolve

      public static URI resolve(URI base, String target) throws MalformedURLException, URISyntaxException
      Replicates the behaviour of URI.resolve(String) and adds support for URIs of the form jar:file:/... .
      Parameters:
      base - The base URI to resolve against
      target - The path to resolve
      Returns:
      The resulting URI as per URI.resolve(String)
      Throws:
      MalformedURLException - If the base URI cannot be converted to a URL
      URISyntaxException - If the resulting URL cannot be converted to a URI