All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class java.net.URLStreamHandler

java.lang.Object
   |
   +----java.net.URLStreamHandler

public abstract class URLStreamHandler
extends Object
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, ftp, or gopher.

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.

See Also:
URL

Constructor Index

 o URLStreamHandler()

Method Index

 o openConnection(URL)
Opens a connection to the object referenced by the URL argument.
 o parseURL(URL, String, int, int)
Parses the string representation of a URL into a URL object.
 o setURL(URL, String, String, int, String, String)
Sets the fields of the URL argument to the indicated values.
 o toExternalForm(URL)
Converts a URL of a specific protocol to a String.

Constructors

 o URLStreamHandler
 public URLStreamHandler()

Methods

 o openConnection
 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.

Parameters:
u - the URL that this connects to.
Returns:
a URLConnection object for the URL.
Throws: IOException
if an I/O error occurs while opening the connection.
 o parseURL
 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.

If the file component of the URL argument contains a question mark (as with CGI HTTP URLs), the context is considered to be the URL's file component up to the first / before the question mark, not including the question mark or the directory before it. For example, if the URL was:

    http://www.foo.com/dir/cgi-bin?foo=bar/baz
and the spec argument was
    quux.html
the resulting URL would be:
    http://www.foo.com/dir/quux.html
.

Parameters:
u - the URL to receive the result of parsing the spec.
spec - the String representing the URL that must be parsed.
start - 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 - 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.
 o toExternalForm
 protected String toExternalForm(URL u)
Converts a URL of a specific protocol to a String.

Parameters:
u - the URL.
Returns:
a string representation of the URL argument.
 o setURL
 protected void setURL(URL u,
                       String protocol,
                       String host,
                       int port,
                       String file,
                       String ref)
Sets the fields of the URL argument to the indicated values. Only classes derived from URLStreamHandler are supposed to be able to call the set method on a URL.

Parameters:
u - the URL to modify.
protocol - the protocol name.
host - the remote host value for the URL.
port - the port on the remote machine.
file - the file.
ref - the reference.
See Also:
set

All Packages  Class Hierarchy  This Package  Previous  Next  Index

Submit a bug or feature - Version 1.1.8 of Java Platform API Specification
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1995-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.