全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.net.URL

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

public final class URL
extends Object
implements Serializable
クラス URL は Uniform Resource Locator (World Wide Web 上の「リソース」を指すポインタ) を表します。リソースとは、ファイルやディレクトリのような単純なものであることも、もっと複雑なオブジェクト (データベースや検索エンジンへの問合せなど) への参照のこともあります。URL の種類とその形式についての詳細は、次の Web サイトで見ることができます。
     http://www.ncsa.uiuc.edu/demoweb/url-primer.html
 

一般に、URL はいくつかの部分に分かれています。上記の例の URL は使用するプロトコルが http (HyperText Transport Protocol) であることと、 www.ncsa.uiuc.edu という名前のホスト上に情報があることを表しています。そして、ホストマシン上にある情報の名前は demoweb/url-primer.html です。ホストマシン上にあるこの名前の正確な意味は、プロトコルとホストの両方に依存しています。一般的には情報は、ファイル内に保存されていますが、動的に生成されることもあります。情報は必ずしもファイル内にあるとは限りませんが、URL のこの部分は ファイル コンポーネントと呼ばれます。

URL には任意で「ポート」を指定することができます。これは TCP 接続を確立するリモートホストマシン上のポート番号を表します。ポート番号を指定しない場合は、そのプロトコルのデフォルトのポートが使用されます。たとえば、http のデフォルトのポートは 80 です。別のポートを使用する場合は、次のように指定します。

     http://www.ncsa.uiuc.edu:8080/demoweb/url-primer.html
 

URL には「アンカー」(「ref」または「参照」とも呼ぶ) を追加することができます。アンカーを指定するには、シャープ記号「#」の後に文字をいくつか指定します。次にアンカーの例を示します。

     http://java.sun.com/index.html#chapter1
 

このアンカーは、技術的に考えると URL の一部ではありません。どちらかというと、アンカーは指定のリソースを取り寄せたあと、そのドキュメントの中で chapter1 タグが付いている部分をアプリケーションが特別に扱うということを表します。このタグの意味はリソースによって異なります。

アプリケーションは「相対 URL」を指定することもできます。相対 URL は、別の URL を基準として相対的にリソースを検索するための情報だけを含んでいます。相対 URL は HTML ページ内でよく使われます。たとえば、次の URL があるとします。

     http://java.sun.com/index.html
 
この HTML ページの中に次の相対 URL が含まれているとします。
     FAQ.html
 
これは次の URL の短縮形とみなされます。
     http://java.sun.com/FAQ.html
 

相対 URL には、URL のコンポーネントをすべて指定する必要がありません。プロトコルやホスト名、ポート番号を省略した場合には、完全修飾の URL の情報が継承されます。ただし、ファイルコンポーネントは必須です。任意指定のアンカーは継承されません。


Constructor Index

 o URL(String)
String 表現から URL オブジェクトを作成する。
 o URL(String, String, int, String)
指定した プロトコルホストポート番号、ファイル から URL オブジェクトを作成する。
 o URL(String, String, String)
指定したプロトコル名、ホスト名、ファイル名から絶対 URL を作成する。
 o URL(URL, String)
指定したコンテキスト内で、引数 spec を解析して URL を作成する。

Method Index

 o equals(Object)
2 つの URL を比較する。
 o getContent()
この URL の内容を返す。
 o getFile()
この URL のファイル名を返す。
 o getHost()
この URL のホスト名を返す (ある場合)。
 o getPort()
この URL のポート番号を返す。
 o getProtocol()
この URL のプロトコル名を返す。
 o getRef()
この URL のアンカー (「参照」とも呼ばれる) を返す。
 o hashCode()
ハッシュ表のインデックスとして使用できる整数を作成する。
 o openConnection()
この URL によって表されるリモートオブジェクトへの接続を表す URLConnection オブジェクトを返す。
 o openStream()
この URL への接続を確立し、その接続から入力を受け取るための InputStream を返す。
 o sameFile(URL)
2 つの URL の、「参照」以外の部分を比較する。
 o set(String, String, int, String, String)
URL のフィールドを設定する。
 o setURLStreamHandlerFactory(URLStreamHandlerFactory)
アプリケーションの URLStreamHandlerFactory を設定する。
 o toExternalForm()
この URL の文字列表現を作成する。
 o toString()
この URL の文字列表現を作成する。

Constructors

 o URL
  public URL(String protocol,
             String host,
             int port,
             String file) throws MalformedURLException
指定した プロトコルホストポート番号、ファイルをもとに、URL オブジェクトを作成します。ポート番号に -1 を指定すると、そのプロトコルのデフォルトのポートが使用されます。

これが指定のプロトコルで作成した最初の URL オブジェクトである場合は、そのプロトコル用の ストリームプロトコルハンドラオブジェクト (URLStreamHandler クラスのインスタンス) が作成されます。

  1. アプリケーションですでに URLStreamHandlerFactory のインスタンスをストリームハンドラファクトリとして設定してある場合は、そのインスタンスの createURLStreamHandler メソッドが呼び出され、引数としてプロトコル文字列が渡されて、ストリームプロトコルハンドラが作成される。
  2. URLStreamHandlerFactory がまだ設定されていない場合、またはファクトリの createURLStreamHandler メソッドが null を返した場合は、コンストラクタは次のシステムプロパティの値を探す。
             java.handler.protol.pkgs
         
    システムプロパティの値が null ではない場合は、縦棒「|」で区切られたパッケージのリストと解釈される。コンストラクタは次の名前のクラスをロードしようとする。
             <package>.<protocol>.Handler
         
    <package> はパッケージ名、<protocol> はプロトコル名を表す。このクラスが存在しない場合、またはクラスは存在するが URLStreamHandler のサブクラスではないという場合は、リスト内の次のパッケージを使って試行される。
  3. 前の段階でプロトコルハンドラが見つからなかった場合、コンストラクタは次の名前のクラスをロードしようとする。
             sun.net.www.protocol.<protocol>.Handler
         
    このクラスが見つからない場合、またはクラスは存在するが URLStreamHandler のサブクラスではないという場合は、MalformedURLException がスローされる。

パラメータ:
protocol - プロトコル名
host - ホスト名
port - ポート番号
file - ホストファイル
例外 : MalformedURLException
指定されたプロトコルが不明である
参照:
getProperty, setURLStreamHandlerFactory, URLStreamHandler, createURLStreamHandler
 o URL
  public URL(String protocol,
             String host,
             String file) throws MalformedURLException
指定した プロトコル 名、ホスト名、ファイル 名をもとに絶対 URL を作成します。指定したプロトコルのデフォルトのポートが使用されます。

このメソッドの機能は、protocolhost-1file の 4 つの引数を受け取るコンストラクタと同じです。

パラメータ:
protocol - 使用するプロトコル
host - 接続先のホスト
file - ホスト上のファイル
例外 : MalformedURLException
指定されたプロトコルが不明である
参照:
URL
 o URL
  public URL(String spec) throws MalformedURLException
String 表現をもとに URL オブジェクトを作成します。

このコンストラクタの機能は、2 つの引数をもつコンストラクタを呼び出し、1 つ目の引数に null を指定するのと同じです。

パラメータ:
spec - URL として解析する String
例外 : MalformedURLException
文字列の表すプロトコルが不明
参照:
URL
 o URL
  public URL(URL context,
             String spec) throws MalformedURLException
指定のコンテキスト内の spec を解析することによって URL を作成します。context 引数が null ではなく、spec 引数が部分的な URL である場合、コンポーネントが不足しているすべての文字列は context 引数から継承されます。

String 引数に指定した値が解析され、それプロトコルを表しているかどうかが判別されます。String 内の最初の ASCII スラッシュ文字「/」よりも前に ASCII コロン「:」文字がある場合、コロンよりも前の文字がプロトコルになります。

その後、コンストラクタはURLStreamHandler 型の適切なストリームプロトコルハンドラを探します。

     java.net.URL#URL(java.lang.String, java.lang.String, int,
                      java.lang.String)
 
ストリームプロトコルハンドラの parseURL メソッドを呼び出して specification ののこりのフィールドを解析し、context 引数によって設定されたすべてのデフォルト値を上書きします。

パラメータ:
context - 解析するコンテキスト
spec - URL の String 表現
例外 : MalformedURLException
プロトコルが指定されていない、または不明のプロトコルが見つかった
参照:
URL, URLStreamHandler, parseURL

Methods

 o set
  protected void set(String protocol,
                     String host,
                     int port,
                     String file,
                     String ref)
URL のフィールドを設定します。これは public メソッドではないので、URL フィールドを修正できるのは URLStreamHandlers だけです。それ以外の URL は定数です。 注意:このメソッドは将来的に URLStreamHandler に移動されます。

パラメータ:
protocol - 使用するプロトコル
host - 接続先のホスト名
port - 接続先のプロトコルポート
file - ホスト上の指定のファイル名
ref - 参照
 o getPort
  public int getPort()
URL のポート番号を返します。 ポートが設定されていない場合は -1 を返します。

返り値:
ポート番号
 o getProtocol
  public String getProtocol()
この URL のプロトコル名を返します。

返り値:
この URL のプロトコル
 o getHost
  public String getHost()
この URL のホスト名を返します (設定されている場合)。 「file」プロトコルの場合、ホスト名は空の文字列になります。

返り値:
この URL のホスト名
 o getFile
  public String getFile()
この URL のファイル名を返します。

返り値:
この URL のファイル名
 o getRef
  public String getRef()
この URL のアンカー (「アンカー」とも呼ばれる) を返します。

返り値:
この URL のアンカー (「参照」とも呼ばれる)
 o equals
  public boolean equals(Object obj)
2 つの URL を比較します。 引数が null ではなく、このオブジェクトと同じ URL を表す URL オブジェクトである場合にだけ、結果が true になります。2 つの URL オブジェクトは、プロトコルが同じで、参照しているホスト、ホスト上のポート番号、ホスト上のファイルおよびアンカーが同じである場合に同じとみなされます。

パラメータ:
obj - 比較対象の URL
返り値:
オブジェクトが同じである場合は true、同じではない場合は false
オーバーライド:
Object クラスの equals
 o hashCode
  public int hashCode()
ハッシュ表のインデックスとして使用できる整数を作成します。

返り値:
この URL のハッシュコード
オーバーライド:
Object クラスの hashCode
 o sameFile
  public boolean sameFile(URL other)
2 つの URL の「参照」フィールド以外の部分を比較します。この URLother 引数がどちらも同じリソースを参照している場合は true を返します。2 つの URL は同じアンカーを含んでいない可能性があります。

パラメータ:
other - 比較対象の URL
返り値:
2 つの URL が参照するリモートオブジェクトが同じである場合は true、同じでない場合は false
 o toString
  public String toString()
この URL の文字列表現を作成します。このオブジェクトのストリームプロトコルハンドラの toExternalForm メソッドを呼び出すことによって文字列が作成されます。

返り値:
このオブジェクトの文字列表現
オーバーライド:
Object クラスの toString
参照:
URL, toExternalForm
 o toExternalForm
  public String toExternalForm()
この URL の文字列表現を作成します。このオブジェクトのストリームプロトコルハンドラの toExternalForm メソッドを呼び出すことによって文字列が作成されます。

返り値:
このオブジェクトの文字列表現
参照:
URL, toExternalForm
 o openConnection
  public URLConnection openConnection() throws IOException
URL が参照するリモートオブジェクトへの接続を表す URLConnection オブジェクトを返します。

まだ接続が確立していない場合には、この URL のプロトコルハンドラの openConnection メソッドを呼び出すことによって接続が確立されます。

返り値:
URL への URLConnection
例外 : IOException
I/O 例外が発生した
参照:
URL, URLConnection, openConnection
 o openStream
  public final InputStream openStream() throws IOException
この URL への接続を確立し、その接続から入力を受け取るための InputStream を返します。このメソッドは次のメソッドの短縮形です。
     openConnection().getInputStream()
 

返り値:
URL 接続から入力を受け取るための入力ストリーム
例外 : IOException
I/O 例外が発生した
参照:
openConnection, getInputStream
 o getContent
  public final Object getContent() throws IOException
この URL の内容を返します。このメソッドは次のメソッドの短縮形です。
     openConnection().getContent()
 

返り値:
この URL の内容
例外 : IOException
I/O 例外が発生した
参照:
getContent
 o setURLStreamHandlerFactory
  public static synchronized void setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
アプリケーションの URLStreamHandlerFactory を設定します。アプリケーションからこのメソッドを最大で 1 回しか呼び出すことができません。

URLStreamHandlerFactory インスタンスを使用すると、プロトコル名からストリームプロトコルハンドラを作成することができます。

パラメータ:
fac - 設定したいファクトリ
例外 : Error
アプリケーションでファクトリがすでに設定されている
参照:
URL, URLStreamHandlerFactory

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス