## org.mortbay.util
Class URIUtil

    java.lang.Object
      org.mortbay.util.URIUtil

All Implemented Interfaces:
  Cloneable

    public class URIUtil

extends Object
implements Cloneable

URI Holder. This class assists with the decoding and encoding or HTTP URI's. It differs from the java.net.URL class as it does not provide communications ability, but it does assist with query string formatting.

UTF-8 encoding is used by default for % encoded characters. This may be overridden with the org.mortbay.util.URI.charset system property.

Author:
  Greg Wilkins (gregw)
See Also:
  `UrlEncoded`

Field Summary
`static String` `__CHARSET`
`static String` `HTTP`
`static String` `HTTP_COLON`
`static String` `HTTPS`
`static String` `HTTPS_COLON`
`static String` `SLASH`

Method Summary
`static String` `addPaths(String p1, String p2)` Add two URI path segments.
`static String` `canonicalPath(String path)` Convert a path to a cananonical form.
`static String` `decodePath(byte[] buf, int offset, int length)`
`static String` `decodePath(String path)`
`static String` `encodePath(String path)` Encode a URI path.
`static StringBuffer` `encodePath(StringBuffer buf, String path)` Encode a URI path.
`static StringBuffer` `encodeString(StringBuffer buf, String path, String encode)` Encode a URI path.
`static boolean` `hasScheme(String uri)`
`static String` `parentPath(String p)` Return the parent Path.
`static String` `stripPath(String path)` Strip parameters from a path.

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

Field Detail

### SLASH

    public static final String SLASH

See Also:
  Constant Field Values

### HTTP

    public static final String HTTP

See Also:
  Constant Field Values

### HTTP_COLON

    public static final String HTTP_COLON

See Also:
  Constant Field Values

### HTTPS

    public static final String HTTPS

See Also:
  Constant Field Values

### HTTPS_COLON

    public static final String HTTPS_COLON

See Also:
  Constant Field Values

### __CHARSET

    public static final String __CHARSET

Method Detail

### encodePath

    public static String encodePath(String path)

  Encode a URI path. This is the same encoding offered by URLEncoder, except that the '/' character is not encoded.

  Parameters:
    `path` - The path the encode
  Returns:
    The encoded path

### encodePath

    public static StringBuffer encodePath(StringBuffer buf,
                                          String path)

  Encode a URI path.

  Parameters:
    `path` - The path the encode
    `buf` - StringBuffer to encode path into (or null)
  Returns:
    The StringBuffer or null if no substitutions required.

### encodeString

    public static StringBuffer encodeString(StringBuffer buf,
                                            String path,
                                            String encode)

  Encode a URI path.

  Parameters:
    `path` - The path the encode
    `buf` - StringBuffer to encode path into (or null)
    `encode` - String of characters to encode. % is always encoded.
  Returns:
    The StringBuffer or null if no substitutions required.

### decodePath

    public static String decodePath(String path)

### decodePath

    public static String decodePath(byte[] buf,
                                    int offset,
                                    int length)

### addPaths

    public static String addPaths(String p1,
                                  String p2)

  Add two URI path segments. Handles null and empty paths, path and query params (eg ?a=b or ;JSESSIONID=xxx) and avoids duplicate '/'

  Parameters:
    `p1` - URI path segment
    `p2` - URI path segment
  Returns:
    Legally combined path segments.

### parentPath

    public static String parentPath(String p)

  Return the parent Path. Treat a URI like a directory path and return the parent directory.

### stripPath

    public static String stripPath(String path)

  Strip parameters from a path. Return path upto any semicolon parameters.

### canonicalPath

    public static String canonicalPath(String path)

  Convert a path to a cananonical form. All instances of "." and ".." are factored out. Null is returned if the path tries to .. above its root.

  Parameters:
    `path` -
  Returns:
    path or null.

### hasScheme

    public static boolean hasScheme(String uri)

  Parameters:
    `uri` - URI
  Returns:
    True if the uri has a scheme

Copyright © 2007 Mort Bay Consulting. All Rights Reserved.