Top Description Constructors Methods
java.net

public abstract Class URLStreamHandler

extends Object
Class Inheritance
Known Direct Subclasses
sun.net.www.protocol.http.Handler, sun.net.www.protocol.file.Handler, sun.net.www.protocol.ftp.Handler, sun.net.www.protocol.jar.Handler, sun.net.www.protocol.jmod.Handler, sun.net.www.protocol.jrt.Handler, sun.net.www.protocol.mailto.Handler
Imports
java.io.IOException, java.util.Locale, .Objects, sun.net.util.IPAddressUtil

The abstract class URLStreamHandler is the common superclass for all stream protocol handlers. A stream protocol handler knows how to make a connection for a particular protocol type, such as http or https.

In most cases, an instance of a URLStreamHandler subclass is not created directly by an application. Rather, the first time a protocol name is encountered when constructing a URL, the appropriate stream protocol handler is automatically loaded.

Author
James Gosling
Since
1.0
See Also
java.net.URL#URL(java.lang.String, java.lang.String, int, java.lang.String)

Constructor Summary

AccessConstructor and Description
public
URLStreamHandler()

Constructor for subclasses to call.

Method Summary

Modifier and TypeMethod and Description
protected boolean

Returns:

true if the two urls are considered equal, i.e. they refer to the same fragment in the same file.
equals
(URL
a URL object
u1
,
URL
a URL object
u2
)

Provides the default equals calculation.

protected int

Returns:

the default port for a URL parsed by this handler.
getDefaultPort
()

Returns the default port for a URL parsed by this handler.

protected InetAddress

Returns:

an InetAddress representing the host IP address.
getHostAddress
(URL
a URL object
u
)

Get the IP address of our host.

protected int

Returns:

an int suitable for hash table indexing
hashCode
(URL
a URL object
u
)

Provides the default hash calculation.

protected boolean

Returns:

true if and only if they are equal, false otherwise.
hostsEqual
(URL
the URL of the first host to compare
u1
,
URL
the URL of the second host to compare
u2
)

Compares the host components of two URLs.

protected abstract URLConnection

Returns:

a URLConnection object for the URL.
openConnection
(URL
the URL that this connects to.
u
)

Opens a connection to the object referenced by the URL argument.

protected URLConnection

Returns:

a URLConnection object for the URL.
openConnection
(URL
the URL that this connects to.
u
,
Proxy
the proxy through which the connection will be made. If direct connection is desired, Proxy.NO_PROXY should be specified.
p
)

Same as openConnection(URL), except that the connection will be made through the specified proxy; Protocol handlers that do not support proxying will ignore the proxy parameter and make a normal connection.

protected void
parseURL(URL
the URL to receive the result of parsing the spec.
u
,
String
the String representing the URL that must be parsed.
spec
,
int
the character index at which to begin parsing. This is just past the ':' (if there is one) that specifies the determination of the protocol name.
start
,
int
the character position to stop parsing at. This is the end of the string or the position of the "#" character, if present. All information after the sharp sign indicates an anchor.
limit
)

Parses the string representation of a URL into a URL object.

protected boolean

Returns:

true if u1 and u2 refer to the same file
sameFile
(URL
a URL object
u1
,
URL
a URL object
u2
)

Compare two urls to see whether they refer to the same file, i.e., having the same protocol, host, port, and path.

protected void
setURL(URL
the URL to modify.
u
,
String
the protocol name.
protocol
,
String
the remote host value for the URL.
host
,
int
the port on the remote machine.
port
,
String
the authority part for the URL.
authority
,
String
the userInfo part of the URL.
userInfo
,
String
the path component of the URL.
path
,
String
the query part for the URL.
query
,
String
the reference.
ref
)

Sets the fields of the URL argument to the indicated values.

protected void
setURL(URL
the URL to modify.
u
,
String
the protocol name. This value is ignored since 1.2.
protocol
,
String
the remote host value for the URL.
host
,
int
the port on the remote machine.
port
,
String
the file.
file
,
String
the reference.
ref
)

Deprecated Use setURL(URL, String, String, int, String, String, String, String);
Sets the fields of the URL argument to the indicated values.
protected String

Returns:

a string representation of the URL argument.
toExternalForm
(URL
the URL.
u
)

Converts a URL of a specific protocol to a String.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

URLStreamHandlerback to summary
public URLStreamHandler()

Constructor for subclasses to call.

Method Detail

equalsback to summary
protected boolean equals(URL u1, URL u2)

Provides the default equals calculation. May be overridden by handlers for other protocols that have different requirements for equals(). This method requires that none of its arguments is null. This is guaranteed by the fact that it is only called by java.net.URL class.

Parameters
u1:URL

a URL object

u2:URL

a URL object

Returns:boolean

true if the two urls are considered equal, i.e. they refer to the same fragment in the same file.

Since
1.3
getDefaultPortback to summary
protected int getDefaultPort()

Returns the default port for a URL parsed by this handler. This method is meant to be overridden by handlers with default port numbers.

Returns:int

the default port for a URL parsed by this handler.

Since
1.3
getHostAddressback to summary
protected InetAddress getHostAddress(URL u)

Get the IP address of our host. An empty host field or a DNS failure will result in a null return.

Parameters
u:URL

a URL object

Returns:InetAddress

an InetAddress representing the host IP address.

Since
1.3
hashCodeback to summary
protected int hashCode(URL u)

Provides the default hash calculation. May be overridden by handlers for other protocols that have different requirements for hashCode calculation.

Parameters
u:URL

a URL object

Returns:int

an int suitable for hash table indexing

Since
1.3
hostsEqualback to summary
protected boolean hostsEqual(URL u1, URL u2)

Compares the host components of two URLs.

Parameters
u1:URL

the URL of the first host to compare

u2:URL

the URL of the second host to compare

Returns:boolean

true if and only if they are equal, false otherwise.

Since
1.3
openConnectionback to summary
protected abstract URLConnection openConnection(URL u) throws IOException

Opens a connection to the object referenced by the URL argument. This method should be overridden by a subclass.

If for the handler's protocol (such as HTTP or JAR), there exists a public, specialized URLConnection subclass belonging to one of the following packages or one of their subpackages: java.lang, java.io, java.util, java.net, the connection returned will be of that subclass. For example, for HTTP an HttpURLConnection will be returned, and for JAR a JarURLConnection will be returned.

Parameters
u:URL

the URL that this connects to.

Returns:URLConnection

a URLConnection object for the URL.

Exceptions
IOException:
if an I/O error occurs while opening the connection.
openConnectionback to summary
protected URLConnection openConnection(URL u, Proxy p) throws IOException

Same as openConnection(URL), except that the connection will be made through the specified proxy; Protocol handlers that do not support proxying will ignore the proxy parameter and make a normal connection.

Calling this method preempts the system's default ProxySelector settings.

Implementation Specification

The default implementation of this method first checks that the given URL and Proxy are not null, then throws UnsupportedOperationException. Subclasses should override this method with an appropriate implementation.

Parameters
u:URL

the URL that this connects to.

p:Proxy

the proxy through which the connection will be made. If direct connection is desired, Proxy.NO_PROXY should be specified.

Returns:URLConnection

a URLConnection object for the URL.

Exceptions
IOException:
if an I/O error occurs while opening the connection.
IllegalArgumentException:
if either u or p is null, or p has the wrong type.
UnsupportedOperationException:
if the subclass that implements the protocol doesn't support this method.
Since
1.5
parseURLback to summary
protected void parseURL(URL u, String spec, int start, int limit)

Parses the string representation of a URL into a URL object.

If there is any inherited context, then it has already been copied into the URL argument.

The parseURL method of URLStreamHandler parses the string representation as if it were an http specification. Most URL protocol families have a similar parsing. A stream protocol handler for a protocol that has a different syntax must override this routine.

Parameters
u:URL

the URL to receive the result of parsing the spec.

spec:String

the String representing the URL that must be parsed.

start:int

the character index at which to begin parsing. This is just past the ':' (if there is one) that specifies the determination of the protocol name.

limit:int

the character position to stop parsing at. This is the end of the string or the position of the "#" character, if present. All information after the sharp sign indicates an anchor.

Exceptions
IllegalArgumentException:
if the implementation of the protocol handler rejects any of the given parameters
NullPointerException:
if u is null, or if start < limit and spec is null
sameFileback to summary
protected boolean sameFile(URL u1, URL u2)

Compare two urls to see whether they refer to the same file, i.e., having the same protocol, host, port, and path. This method requires that none of its arguments is null. This is guaranteed by the fact that it is only called indirectly by java.net.URL class.

Parameters
u1:URL

a URL object

u2:URL

a URL object

Returns:boolean

true if u1 and u2 refer to the same file

Since
1.3
setURLback to summary
protected void setURL(URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref)

Sets the fields of the URL argument to the indicated values. Only classes derived from URLStreamHandler are able to use this method to set the values of the URL fields.

Parameters
u:URL

the URL to modify.

protocol:String

the protocol name.

host:String

the remote host value for the URL.

port:int

the port on the remote machine.

authority:String

the authority part for the URL.

userInfo:String

the userInfo part of the URL.

path:String

the path component of the URL.

query:String

the query part for the URL.

ref:String

the reference.

Exceptions
SecurityException:
if the protocol handler of the URL is different from this one
IllegalArgumentException:
if the implementation of the protocol handler rejects any of the given parameters
NullPointerException:
if u is null
Since
1.3
setURLback to summary
protected void setURL(URL u, String protocol, String host, int port, String file, String ref)

Deprecated

Use setURL(URL, String, String, int, String, String, String, String);

Sets the fields of the URL argument to the indicated values. Only classes derived from URLStreamHandler are able to use this method to set the values of the URL fields.

Parameters
u:URL

the URL to modify.

protocol:String

the protocol name. This value is ignored since 1.2.

host:String

the remote host value for the URL.

port:int

the port on the remote machine.

file:String

the file.

ref:String

the reference.

Annotations
@Deprecated
Exceptions
SecurityException:
if the protocol handler of the URL is different from this one
IllegalArgumentException:
if the implementation of the protocol handler rejects any of the given parameters
NullPointerException:
if u is null
toExternalFormback to summary
protected String toExternalForm(URL u)

Converts a URL of a specific protocol to a String.

Parameters
u:URL

the URL.

Returns:String

a string representation of the URL argument.