全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
java.lang.Object | +----java.net.URL
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 があるとします。
この HTML ページの中に次の相対 URL が含まれているとします。http://java.sun.com/index.html
これは次の URL の短縮形とみなされます。FAQ.html
http://java.sun.com/FAQ.html
相対 URL には、URL のコンポーネントをすべて指定する必要がありません。プロトコルやホスト名、ポート番号を省略した場合には、完全修飾の URL の情報が継承されます。ただし、ファイルコンポーネントは必須です。任意指定のアンカーは継承されません。
String
表現から URL
オブジェクトを作成する。
プロトコル
、ホスト
、ポート
番号、ファイル
から URL
オブジェクトを作成する。
プロトコル
名、ホスト
名、ファイル
名から絶対 URL を作成する。
spec
を解析して URL を作成する。
URL
のファイル名を返す。
URL
のホスト名を返す (ある場合)。
URL
のポート番号を返す。
URL
のプロトコル名を返す。
URL
のアンカー (「参照」とも呼ばれる) を返す。
URL
によって表されるリモートオブジェクトへの接続を表す URLConnection
オブジェクトを返す。
URL
への接続を確立し、その接続から入力を受け取るための
InputStream
を返す。
URLStreamHandlerFactory
を設定する。
URL
の文字列表現を作成する。
URL
の文字列表現を作成する。
public URL(String protocol, String host, int port, String file) throws MalformedURLException
プロトコル
、ホスト
、ポート
番号、ファイル
をもとに、URL
オブジェクトを作成します。ポート
番号に -1
を指定すると、そのプロトコルのデフォルトのポートが使用されます。
これが指定のプロトコルで作成した最初の URL オブジェクトである場合は、そのプロトコル用の ストリームプロトコルハンドラオブジェクト (URLStreamHandler
クラスのインスタンス) が作成されます。
URLStreamHandlerFactory
のインスタンスをストリームハンドラファクトリとして設定してある場合は、そのインスタンスの createURLStreamHandler
メソッドが呼び出され、引数としてプロトコル文字列が渡されて、ストリームプロトコルハンドラが作成される。
URLStreamHandlerFactory
がまだ設定されていない場合、またはファクトリの createURLStreamHandler
メソッドが null
を返した場合は、コンストラクタは次のシステムプロパティの値を探す。
システムプロパティの値がjava.handler.protol.pkgs
null
ではない場合は、縦棒「|
」で区切られたパッケージのリストと解釈される。コンストラクタは次の名前のクラスをロードしようとする。
<package> はパッケージ名、<protocol> はプロトコル名を表す。このクラスが存在しない場合、またはクラスは存在するが<package>.<protocol>.Handler
URLStreamHandler
のサブクラスではないという場合は、リスト内の次のパッケージを使って試行される。
このクラスが見つからない場合、またはクラスは存在するがsun.net.www.protocol.<protocol>.Handler
URLStreamHandler
のサブクラスではないという場合は、MalformedURLException
がスローされる。
public URL(String protocol, String host, String file) throws MalformedURLException
プロトコル
名、ホスト
名、ファイル
名をもとに絶対 URL を作成します。指定したプロトコルのデフォルトのポートが使用されます。
このメソッドの機能は、protocol
、host
、-1
、file
の 4 つの引数を受け取るコンストラクタと同じです。
public URL(String spec) throws MalformedURLException
String
表現をもとに URL
オブジェクトを作成します。
このコンストラクタの機能は、2 つの引数をもつコンストラクタを呼び出し、1 つ目の引数に null
を指定するのと同じです。
String
public URL(URL context, String spec) throws MalformedURLException
spec
を解析することによって URL を作成します。context
引数が null
ではなく、spec
引数が部分的な URL である場合、コンポーネントが不足しているすべての文字列は context
引数から継承されます。
String
引数に指定した値が解析され、それプロトコルを表しているかどうかが判別されます。String
内の最初の ASCII スラッシュ文字「/
」よりも前に ASCII コロン「:
」文字がある場合、コロンよりも前の文字がプロトコルになります。
spec
引数に指定した値がプロトコルではない場合は次のようになります。
null
ではない場合は、context 引数のプロトコルが使用される。
null
の場合は、MalformedURLException
がスローされる。
spec
引数に指定した値がプロトコルの場合は次のようになります。
null
または spec 引数とは異なるプロトコルを表す場合、context 引数は無視される。
null
ではなく、spec 引数と同じプロトコルを表す場合、新規作成する URL
に、context 引数のホスト
、ポート番号
番号、ファイル
がコピーされる。
その後、コンストラクタはURLStreamHandler
型の適切なストリームプロトコルハンドラを探します。
ストリームプロトコルハンドラのjava.net.URL#URL(java.lang.String, java.lang.String, int, java.lang.String)
parseURL
メソッドを呼び出して specification ののこりのフィールドを解析し、context 引数によって設定されたすべてのデフォルト値を上書きします。
String
表現
protected void set(String protocol, String host, int port, String file, String ref)
public int getPort()
URL
のポート番号を返します。
ポートが設定されていない場合は -1 を返します。
public String getProtocol()
URL
のプロトコル名を返します。
URL
のプロトコル
public String getHost()
URL
のホスト名を返します (設定されている場合)。
「file
」プロトコルの場合、ホスト名は空の文字列になります。
URL
のホスト名
public String getFile()
URL
のファイル名を返します。
URL
のファイル名
public String getRef()
URL
のアンカー (「アンカー」とも呼ばれる) を返します。
URL
のアンカー (「参照」とも呼ばれる)
public boolean equals(Object obj)
null
ではなく、このオブジェクトと同じ URL
を表す URL
オブジェクトである場合にだけ、結果が true
になります。2 つの URL オブジェクトは、プロトコルが同じで、参照しているホスト、ホスト上のポート番号、ホスト上のファイルおよびアンカーが同じである場合に同じとみなされます。
true
、同じではない場合は false
public int hashCode()
URL
のハッシュコード
public boolean sameFile(URL other)
URL
と other
引数がどちらも同じリソースを参照している場合は true
を返します。2 つの URL
は同じアンカーを含んでいない可能性があります。
URL
true
、同じでない場合は false
public String toString()
URL
の文字列表現を作成します。このオブジェクトのストリームプロトコルハンドラの toExternalForm
メソッドを呼び出すことによって文字列が作成されます。
public String toExternalForm()
URL
の文字列表現を作成します。このオブジェクトのストリームプロトコルハンドラの toExternalForm
メソッドを呼び出すことによって文字列が作成されます。
public URLConnection openConnection() throws IOException
URL
が参照するリモートオブジェクトへの接続を表す URLConnection
オブジェクトを返します。
まだ接続が確立していない場合には、この URL のプロトコルハンドラの openConnection
メソッドを呼び出すことによって接続が確立されます。
URLConnection
public final InputStream openStream() throws IOException
URL
への接続を確立し、その接続から入力を受け取るための InputStream
を返します。このメソッドは次のメソッドの短縮形です。
openConnection().getInputStream()
public final Object getContent() throws IOException
openConnection().getContent()
public static synchronized void setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
URLStreamHandlerFactory
を設定します。アプリケーションからこのメソッドを最大で 1 回しか呼び出すことができません。
URLStreamHandlerFactory
インスタンスを使用すると、プロトコル名からストリームプロトコルハンドラを作成することができます。
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス