org.apache.tomcat.util.net

Class URL

public final class URL extends Object implements 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: 467222 $ $Date: 2006-10-24 05:17:11 +0200 (Tue, 24 Oct 2006) $

Author: Craig R. McClanahan

Constructor Summary
URL(String spec)
Create a URL object from the specified String representation.
URL(URL context, String spec)
Create a URL object by parsing a string representation relative to a specified context.
URL(String protocol, String host, String file)
Create a URL object from the specified components.
URL(String protocol, String host, int port, String file)
Create a URL object from the specified components.
Method Summary
booleanequals(Object obj)
Compare two URLs for equality.
StringgetAuthority()
Return the authority part of the URL.
StringgetFile()
Return the filename part of the URL.
StringgetHost()
Return the host name part of the URL.
StringgetPath()
Return the path part of the URL.
intgetPort()
Return the port number part of the URL.
StringgetProtocol()
Return the protocol name part of the URL.
StringgetQuery()
Return the query part of the URL.
StringgetRef()
Return the reference part of the URL.
StringgetUserInfo()
Return the user info part of the URL.
static booleanisSchemeChar(char c)
Determine if the character is allowed in the scheme of a URI.
voidnormalize()
Normalize the path (and therefore file) portions of this URL.
booleansameFile(URL other)
Compare two URLs, excluding the "ref" fields.
StringtoExternalForm()
Return a string representation of this URL.
StringtoString()
Return a string representation of this object.

Constructor Detail

URL

public URL(String spec)
Create a URL object from the specified String representation.

Parameters: spec String representation of the URL

Throws: MalformedURLException if the string representation cannot be parsed successfully

URL

public URL(URL context, String spec)
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: MalformedURLException if the string representation cannot be parsed successfully

URL

public URL(String protocol, String host, String file)
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: MalformedURLException is never thrown, but present for compatible APIs

URL

public URL(String protocol, String host, int port, String file)
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: MalformedURLException is never thrown, but present for compatible APIs

Method Detail

equals

public boolean equals(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 String getAuthority()
Return the authority part of the URL.

getFile

public 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 String getHost()
Return the host name part of the URL.

getPath

public String getPath()
Return the path part of the URL.

getPort

public int getPort()
Return the port number part of the URL.

getProtocol

public String getProtocol()
Return the protocol name part of the URL.

getQuery

public String getQuery()
Return the query part of the URL.

getRef

public String getRef()
Return the reference part of the URL.

getUserInfo

public String getUserInfo()
Return the user info part of the URL.

isSchemeChar

public static boolean isSchemeChar(char c)
Determine if the character is allowed in the scheme of a URI. See RFC 2396, Section 3.1

normalize

public void normalize()
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: 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 String toExternalForm()
Return a string representation of this URL. This follow the rules in RFC 2396, Section 5.2, Step 7.

toString

public String toString()
Return a string representation of this object.
Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.