org.apache.tomcat.util.net
Class URL

java.lang.Object
  extended byorg.apache.tomcat.util.net.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:
$Id: URL.java 939524 2010-04-30 00:29:29Z kkolinko $
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.
static boolean isSchemeChar(char c)
          Determine if the character is allowed in the scheme of a URI.
 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.


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



Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.