## org.apache.catalina.util
Class URL

    java.lang.Object
      org.apache.catalina.util.URL

All Implemented Interfaces:
  java.io.Serializable

public final class URL
extends java.lang.Object
implements java.io.Serializable

URL is designed to provide public APIs for parsing and synthesizing Uniform Resource Locators as similar as possible to the APIs of `java.net.URL`, but without the ability to open a stream or connection. One of the consequences of this is that you can construct URLs for protocols for which a URLStreamHandler is not available (such as an "https" URL when JSSE is not installed).

WARNING - This class assumes that the string representation of a URL conforms to the `spec` argument as described in RFC 2396 "Uniform Resource Identifiers: Generic Syntax":

       <scheme>//<authority><path>?<query>#<fragment>

FIXME - This class really ought to end up in a Commons package someplace.

Version:
  $Revision: 1.5 $ $Date: 2004/08/26 21:43:16 $
Author:
  Craig R. McClanahan
See Also:
  Serialized Form

Constructor Summary
`URL(java.lang.String spec)` Create a URL object from the specified String representation.
`URL(java.lang.String protocol, java.lang.String host, int port, java.lang.String file)` Create a URL object from the specified components.
`URL(java.lang.String protocol, java.lang.String host, java.lang.String file)` Create a URL object from the specified components.
`URL(URL context, java.lang.String spec)` Create a URL object by parsing a string representation relative to a specified context.

Method Summary
`boolean` `equals(java.lang.Object obj)` Compare two URLs for equality.
`java.lang.String` `getAuthority()` Return the authority part of the URL.
`java.lang.String` `getFile()` Return the filename part of the URL.
`java.lang.String` `getHost()` Return the host name part of the URL.
`java.lang.String` `getPath()` Return the path part of the URL.
`int` `getPort()` Return the port number part of the URL.
`java.lang.String` `getProtocol()` Return the protocol name part of the URL.
`java.lang.String` `getQuery()` Return the query part of the URL.
`java.lang.String` `getRef()` Return the reference part of the URL.
`java.lang.String` `getUserInfo()` Return the user info part of the URL.
`void` `normalize()` Normalize the `path` (and therefore `file`) portions of this URL.
`boolean` `sameFile(URL other)` Compare two URLs, excluding the "ref" fields.
`java.lang.String` `toExternalForm()` Return a string representation of this URL.
`java.lang.String` `toString()` Return a string representation of this object.

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

Constructor Detail

### URL

    public URL(java.lang.String spec)
        throws java.net.MalformedURLException

  Create a URL object from the specified String representation.

Parameters:
  `spec` - String representation of the URL
Throws:
  `java.net.MalformedURLException` - if the string representation cannot be parsed successfully

### URL

    public URL(URL context,
               java.lang.String spec)
        throws java.net.MalformedURLException

  Create a URL object by parsing a string representation relative to a specified context. Based on logic from JDK 1.3.1's `java.net.URL`.

Parameters:
  `context` - URL against which the relative representation is resolved
  `spec` - String representation of the URL (usually relative)
Throws:
  `java.net.MalformedURLException` - if the string representation cannot be parsed successfully

### URL

    public URL(java.lang.String protocol,
               java.lang.String host,
               java.lang.String file)
        throws java.net.MalformedURLException

  Create a URL object from the specified components. The default port number for the specified protocol will be used.

Parameters:
  `protocol` - Name of the protocol to use
  `host` - Name of the host addressed by this protocol
  `file` - Filename on the specified host
Throws:
  `java.net.MalformedURLException` - is never thrown, but present for compatible APIs

### URL

    public URL(java.lang.String protocol,
               java.lang.String host,
               int port,
               java.lang.String file)
        throws java.net.MalformedURLException

  Create a URL object from the specified components. Specifying a port number of -1 indicates that the URL should use the default port for that protocol. Based on logic from JDK 1.3.1's `java.net.URL`.

Parameters:
  `protocol` - Name of the protocol to use
  `host` - Name of the host addressed by this protocol
  `port` - Port number, or -1 for the default port for this protocol
  `file` - Filename on the specified host
Throws:
  `java.net.MalformedURLException` - is never thrown, but present for compatible APIs

Method Detail

### equals

    public boolean equals(java.lang.Object obj)

  Compare two URLs for equality. The result is `true` if and only if the argument is not null, and is a `URL` object that represents the same `URL` as this object. Two `URLs` are equal if they have the same protocol and reference the same host, the same port number on the host, and the same file and anchor on the host.

  Parameters:
    `obj` - The URL to compare against

### getAuthority

    public java.lang.String getAuthority()

  Return the authority part of the URL.

### getFile

    public java.lang.String getFile()

  Return the filename part of the URL. NOTE - For compatibility with `java.net.URL`, this value includes the query string if there was one. For just the path portion, call `getPath()` instead.

### getHost

    public java.lang.String getHost()

  Return the host name part of the URL.

### getPath

    public java.lang.String getPath()

  Return the path part of the URL.

### getPort

    public int getPort()

  Return the port number part of the URL.

### getProtocol

    public java.lang.String getProtocol()

  Return the protocol name part of the URL.

### getQuery

    public java.lang.String getQuery()

  Return the query part of the URL.

### getRef

    public java.lang.String getRef()

  Return the reference part of the URL.

### getUserInfo

    public java.lang.String getUserInfo()

  Return the user info part of the URL.

### normalize

    public void normalize()
                   throws java.net.MalformedURLException

  Normalize the `path` (and therefore `file`) portions of this URL.

  NOTE - This method is not part of the public API of `java.net.URL`, but is provided as a value added service of this implementation.

  Throws:
    `java.net.MalformedURLException` - if a normalization error occurs, such as trying to move about the hierarchical root

### sameFile

    public boolean sameFile(URL other)

  Compare two URLs, excluding the "ref" fields. Returns `true` if this `URL` and the `other` argument both refer to the same resource. The two `URLs` might not both contain the same anchor.

### toExternalForm

    public java.lang.String toExternalForm()

  Return a string representation of this URL. This follow the rules in RFC 2396, Section 5.2, Step 7.

### toString

    public java.lang.String toString()

  Return a string representation of this object.

Copyright ? 2000-2002 Apache Software Foundation. All Rights Reserved.