|
Foundation 1.1.2 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.net.URL
public final class URL
URL クラスは、Uniform Resource Locator (ユニフォームリソースロケータ)、つまり World Wide Web 上の「リソース」へのポインタを表します。リソースは、ファイルやディレクトリのような単純なものであることも、データベースや検索エンジンに対するクエリーなど、より複雑なオブジェクトへの参照であることもあります。URL の種類や形式の詳細については、次を参照してください。
http://archive.ncsa.uiuc.edu/SDG/Software/Mosaic/Demo/url-primer.html
一般に、URL はいくつかの部分に分解できます。先の例の URL は、使用すべきプロトコルが http (HyperText Transfer Protocol) であることと、www.ncsa.uiuc.edu という名前のホストマシン上に情報が存在していることを示しています。そのホストマシン上の情報には、/SDG/Software/Mosaic/Demo/url-primer.html という名前が付けられています。ホストマシン上におけるこの名前の正確な意味は、プロトコルとホストの両方に依存します。一般的には情報はファイル内に保存されていますが、動的に生成される場合もあります。URL のこうした部分はパスコンポーネントと呼ばれます。
URL にはオプションで「ポート」を指定できます。これは、TCP 接続の確立先となる、リモートホストマシン上のポート番号です。ポートを指定しなかった場合は、代わりにプロトコルのデフォルトポートが使用されます。たとえば、http のデフォルトポートは 80 です。次のように別のポートを指定することもできます。
http://archive.ncsa.uiuc.edu:80/SDG/Software/Mosaic/Demo/url-primer.html
URL の構文は、RFC 2396「Uniform Resource Identifiers (URI): Generic Syntax」で定義され、RFC 2732「Format for Literal IPv6 Addresses in URLs」で修正されています。
URL には「フラグメント」(「ref」または「参照 (reference)」とも呼ぶ) を追加できます。フラグメントは、シャープ記号文字「#」とそれに続くいくつかの文字によって示されます。次に例を示します。
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 から値が継承されます。ファイルコンポーネントは指定しなければいけません。オプション指定のフラグメントは継承されません。
| コンストラクタの概要 | |
|---|---|
URL(String spec)
String 表現から URL オブジェクトを生成します。 |
|
URL(String protocol,
String host,
int port,
String file)
指定された protocol、host、port 番号、および file から URL オブジェクトを生成します。 |
|
URL(String protocol,
String host,
int port,
String file,
URLStreamHandler handler)
指定された protocol、host、port 番号、file、および handler から URL オブジェクトを生成します。 |
|
URL(String protocol,
String host,
String file)
指定された protocol 名、host 名、および file 名から URL を作成します。 |
|
URL(URL context,
String spec)
指定されたコンテキスト内の指定された仕様で構文解析することによって、URL を生成します。 |
|
URL(URL context,
String spec,
URLStreamHandler handler)
指定されたコンテキスト内の指定されたハンドラで、指定された仕様を構文解析して URL を生成します。 |
|
| メソッドの概要 | |
|---|---|
boolean |
equals(Object obj)
この URL と別のオブジェクトとが等しいかどうかを比較します。 |
String |
getAuthority()
この URL の機関部分を取得します。 |
Object |
getContent()
この URL のコンテンツを取得します。 |
Object |
getContent(Class[] classes)
この URL のコンテンツを取得します。 |
int |
getDefaultPort()
この URL に関連するプロトコルのデフォルトのポート番号を取得します。 |
String |
getFile()
この URL のファイル名を取得します。 |
String |
getHost()
該当する場合、この URL のホスト名を取得します。 |
String |
getPath()
この URL のパス部分を取得します。 |
int |
getPort()
この URL のポート番号を取得します。 |
String |
getProtocol()
この URL のプロトコル名を取得します。 |
String |
getQuery()
この URL のクエリー部分を取得します。 |
String |
getRef()
この URL のアンカー (「参照」とも呼ばれる) を取得します。 |
String |
getUserInfo()
この URL のユーザー情報部分を取得します。 |
int |
hashCode()
ハッシュテーブルのインデックス付けに適した int 値を作成します。 |
URLConnection |
openConnection()
URL が参照するリモートオブジェクトへの接続を表す URLConnection オブジェクトを返します。 |
InputStream |
openStream()
この URL への接続をオープンし、その接続から読み込みを行うための InputStream を返します。 |
boolean |
sameFile(URL other)
フラグメントコンポーネント以外の 2 つの URL を比較します。 |
protected void |
set(String protocol,
String host,
int port,
String file,
String ref)
URL のフィールドを設定します。 |
protected void |
set(String protocol,
String host,
int port,
String authority,
String userInfo,
String path,
String query,
String ref)
URL の、指定された 8 フィールドを設定します。 |
static void |
setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
アプリケーションの URLStreamHandlerFactory を設定します。 |
String |
toExternalForm()
この URL の文字列表現を構築します。 |
String |
toString()
この URL の文字列表現を構築します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public URL(String protocol,
String host,
int port,
String file)
throws MalformedURLException
protocol、host、port 番号、および file から URL オブジェクトを生成します。
host は、ホスト名、リテラル IP アドレスのいずれかとして表現できます。IPv6 リテラルアドレスを使用する場合は、RFC 2732 で指定されているように、アドレスを角括弧 (「[」と「]」) で囲む必要があります。ただし、RFC 2373「IP Version 6 Addressing Architecture」で定義されているリテラル IPv6 アドレス形式も使用可能です。
port 番号 -1 の指定は、URL がプロトコルのデフォルトのポートを使用することを示します。
指定されたプロトコルで最初に URL オブジェクトを生成するときには、そのプロトコルのためのストリームプロトコルハンドラオブジェクトが生成されます。このストリームプロトコルハンドラオブジェクトは、URLStreamHandler クラスのインスタンスです。
URLStreamHandlerFactory のインスタンスをストリームハンドラファクトリとして設定している場合は、そのインスタンスの createURLStreamHandler メソッドがプロトコル文字列を引数として呼び出されて、ストリームプロトコルハンドラを作成します。
URLStreamHandlerFactory が設定されていない場合、あるいはファクトリの createURLStreamHandler メソッドが null を返した場合は、コンストラクタが次のシステムプロパティーの値を探します。
java.protocol.handler.pkgs
このシステムプロパティーの値が null でなければ、値は、垂直スラッシュ文字「|」で区切られた、パッケージのリストとして解釈されます。コンストラクタは次の名前を持つクラスをロードしようとします。
<package>.<protocol>.Handler
ここで、<package> にはパッケージの名前が入り、<protocol> にはプロトコルの名前が入ります。このクラスが存在しない場合、あるいはクラスは存在してもそれが URLStreamHandler のサブクラスではない場合は、リストにある次のパッケージを試すことになります。
<system default package>.<protocol>.Handler
このクラスが存在しない場合、あるいはクラスは存在してもそれが URLStreamHandler のサブクラスではない場合は、MalformedURLException がスローされます。
このコンストラクタによる入力の検証は実行されません。
protocol - 使用するプロトコル名host - ホスト名port - ホスト上でのポート番号file - ホスト上のファイル
MalformedURLException - 未知のプロトコルとして指定された場合System.getProperty(java.lang.String),
java.net.URL#setURLStreamHandlerFactory(,
URLStreamHandler,
java.net.URLStreamHandlerFactory#createURLStreamHandler(
public URL(String protocol,
String host,
String file)
throws MalformedURLException
protocol 名、host 名、および file 名から URL を作成します。指定されたプロトコルのデフォルトポートが使用されます。
このメソッドの機能は、引数に protocol、host、-1、file を指定して 4 つの引数を受け取るコンストラクタを呼び出すのと同じです。
このコンストラクタによる入力の検証は実行されません。
protocol - 使用するプロトコル名host - ホスト名file - ホスト上のファイル
MalformedURLException - 未知のプロトコルとして指定された場合java.net.URL#URL(java.lang.String, java.lang.String,
public URL(String protocol,
String host,
int port,
String file,
URLStreamHandler handler)
throws MalformedURLException
protocol、host、port 番号、file、および handler から URL オブジェクトを生成します。port 番号 -1 の指定は、URL がプロトコルのデフォルトのポートを使用することを示します。handler に null を指定した場合、それは、java.net.URL#URL(java.lang.String, java.lang.String, int, java.lang.String) で概説したプロトコルのデフォルトストリームハンドラを、URL が使用すべきであることを示します。
ハンドラが null ではなく、セキュリティーマネージャーが存在する場合、NetPermission("specifyStreamHandler") アクセス権を指定してセキュリティーマネージャーの checkPermission メソッドが呼び出されます。その結果、SecurityException が発生することがあります。
このコンストラクタによる入力の検証は実行されません。
protocol - 使用するプロトコル名host - ホスト名port - ホスト上でのポート番号file - ホスト上のファイルhandler - URL のストリームハンドラ
MalformedURLException - 未知のプロトコルとして指定された場合
SecurityException - セキュリティーマネージャーが存在し、その checkPermission メソッドがストリームハンドラの明示的な指定を許可しない場合System.getProperty(java.lang.String),
java.net.URL#setURLStreamHandlerFactory(,
URLStreamHandler,
java.net.URLStreamHandlerFactory#createURLStreamHandler(,
SecurityManager.checkPermission(java.security.Permission),
NetPermission
public URL(String spec)
throws MalformedURLException
String 表現から URL オブジェクトを生成します。
このコンストラクタは、1 番目の引数に null を指定して、引数が 2 つのコンストラクタを呼び出すことと同じです。
spec - URL として構文解析される String
MalformedURLException - 文字列に指定されたプロトコルが未知である場合URL(java.net.URL, java.lang.String)
public URL(URL context,
String spec)
throws MalformedURLException
<scheme>://<authority><path>?<query>#<fragment>
参照はスキーマ、機関、パス、クエリー、およびフラグメントの各部分に構文解析されます。パスコンポーネントが空でスキーマ、機関、およびクエリーの各コンポーネントが未定義の場合、新しい URL が現在のドキュメントへの参照となります。それ以外の場合は、仕様のフラグメント部分とクエリー部分が新しい URL に使われます。 指定された仕様でスキーマコンポーネントが定義され、そのスキーマコンポーネントがコンテキストのスキーマと一致しない場合、仕様だけに基づく絶対 URL として新しい URL が生成されます。そうでない場合は、スキーマコンポーネントはコンテキスト URL を継承します。
権限コンポーネントが仕様にある場合には、仕様は絶対的なものとして扱われ、仕様の機関とパスはコンテキストの機関とパスを置換します。仕様に権限コンポーネントがない場合、新しい URL の機関はコンテキストを継承します。
仕様のパスコンポーネントがスラッシュ文字 "/" で始まる場合、パスは絶対的なものとして扱われ、仕様のパスがコンテキストのパスを置換します。
それ以外の場合、RFC2396 で説明されているように、パスは相対パスとして扱われ、コンテキストパスに追加されます。また、この場合、「..」および「.」によって行われたディレクトリ変更を削除することで、パスは正規化されます。
URL 構文解析の詳細な説明については、RFC2396 を参照してください。
context - 仕様を構文解析するコンテキストspec - URL として構文解析される String
MalformedURLException - プロトコルが指定されていないか、未知のプロトコルが見つかった場合java.net.URL#URL(java.lang.String, java.lang.String,,
URLStreamHandler,
java.net.URLStreamHandler#parseURL(java.net.URL,
public URL(URL context,
String spec,
URLStreamHandler handler)
throws MalformedURLException
context - 仕様を構文解析するコンテキストspec - URL として構文解析される Stringhandler - URL のストリームハンドラ
MalformedURLException - プロトコルが指定されていないか、未知のプロトコルが見つかった場合
SecurityException - セキュリティーマネージャーが存在し、その checkPermission メソッドがストリームハンドラの指定を許可しない場合java.net.URL#URL(java.lang.String, java.lang.String,,
URLStreamHandler,
java.net.URLStreamHandler#parseURL(java.net.URL,| メソッドの詳細 |
|---|
protected void set(String protocol,
String host,
int port,
String file,
String ref)
protocol - 使用するプロトコル名host - ホスト名port - ホスト上でのポート番号file - ホスト上のファイルref - URL の内部参照
protected void set(String protocol,
String host,
int port,
String authority,
String userInfo,
String path,
String query,
String ref)
protocol - 使用するプロトコル名host - ホスト名port - ホスト上でのポート番号authority - URL の機関部分userInfo - ユーザー名およびパスワードpath - ホスト上のファイルref - URL の内部参照query - この URL のクエリー部分public String getQuery()
URL のクエリー部分を取得します。
URL のクエリー部分。存在しない場合は nullpublic String getPath()
URL のパス部分を取得します。
URL のパス部分。存在しない場合は空の文字列public String getUserInfo()
URL のユーザー情報部分を取得します。
URL のユーザー情報部分。存在しない場合は nullpublic String getAuthority()
URL の機関部分を取得します。
URL の機関部分public int getPort()
URL のポート番号を取得します。
public int getDefaultPort()
URL に関連するプロトコルのデフォルトのポート番号を取得します。URL スキーマまたは URL の URLStreamHandler がデフォルトのポート番号を定義しない場合は、-1 が返されます。
public String getProtocol()
URL のプロトコル名を取得します。
URL のプロトコルpublic String getHost()
URL のホスト名を取得します。ホスト名の形式は RFC 2732 に準拠します。つまり、リテラル IPv6 アドレスの場合、このメソッドは角括弧 ([ および ]) で囲まれた IPv6 アドレスを返します。
URL のホスト名public String getFile()
URL のファイル名を取得します。返されるファイル部分は、getQuery() の値が存在する場合には、その値と getPath() の値を連結したものと同じになります。クエリー部分が存在しない場合、このメソッドと getPath() は同じ結果を返します。
URL のファイル名。存在しない場合は空の文字列public String getRef()
URL のアンカー (「参照」とも呼ばれる) を取得します。
URL のアンカー (「参照」とも呼ばれる)。存在しない場合は nullpublic boolean equals(Object obj)
指定されたオブジェクトが URL でない場合、このメソッドはただちに false を返します。
2 つの URL オブジェクトが等しいのは、同じプロトコルを持ち、同じホストを参照し、ホスト上のポート番号が同じで、ファイルとファイルのフラグメントが同じ場合です。
2 つのホストが等価とみなされるのは、両方のホスト名が同じ IP アドレスに解決されるか、どちらかのホスト名を解決できない場合は、大文字小文字に関係なくホスト名が等しいか、両方のホスト名が null に等しい場合です。
ホスト比較には名前解決が必要なので、この操作はブロック操作です。
注:equals の定義された動作は、HTTP の仮想ホストと一致しないことが知られています。
Object 内の equalsobj - 比較対象の URL
true、そうでない場合は falseObject.hashCode(),
Hashtablepublic int hashCode()
ハッシュコードは URL 比較に関連するすべての URL コンポーネントに基づいています。したがって、この操作はブロック操作です。
Object 内の hashCodeURL に使うハッシュコードObject.equals(java.lang.Object),
Hashtablepublic boolean sameFile(URL other)
フラグメントコンポーネントを考慮しないで、この URL と other 引数が等しい場合は、true を返します。
other - 比較対象の URL
true、そうでない場合は falsepublic String toString()
URL の文字列表現を構築します。このオブジェクトのストリームプロトコルハンドラの toExternalForm メソッドを呼び出すことによって文字列が作成されます。
Object 内の toStringjava.net.URL#URL(java.lang.String, java.lang.String, int,,
URLStreamHandler.toExternalForm(java.net.URL)public String toExternalForm()
URL の文字列表現を構築します。このオブジェクトのストリームプロトコルハンドラの toExternalForm メソッドを呼び出すことによって文字列が作成されます。
java.net.URL#URL(java.lang.String, java.lang.String,,
URLStreamHandler.toExternalForm(java.net.URL)
public URLConnection openConnection()
throws IOException
URL が参照するリモートオブジェクトへの接続を表す URLConnection オブジェクトを返します。
この URL のプロトコルハンドラの openConnection メソッドを呼び出すたびに、新しい接続が開かれます。
HTTP や JAR などの、URL のプロトコルについては、java.lang、java.io、java.util、または java.net のパッケージ、あるいはそのサブパッケージのいずれかに属する公開された特殊な URLConnection サブクラスが存在する場合、返される接続はそのサブクラスのものになります。たとえば、HTTP の場合は HttpURLConnection が返され、JAR の場合は JarURLConnection が返されます。注:java.net.HttpURLConnection は、J2ME Foundation Profile などの J2ME CDC プロファイルにあります。これらのサブクラスは、次のようになる必要があります。
URLConnection
IOException - 入出力例外が発生した場合java.net.URL#URL(java.lang.String, java.lang.String,,
URLConnection,
URLStreamHandler.openConnection(java.net.URL)
public final InputStream openStream()
throws IOException
URL への接続をオープンし、その接続から読み込みを行うための InputStream を返します。このメソッドは次のメソッドの短縮形です。
openConnection().getInputStream()
IOException - 入出力例外が発生した場合openConnection(),
URLConnection.getInputStream()
public final Object getContent()
throws IOException
openConnection().getContent()
IOException - 入出力例外が発生した場合URLConnection.getContent()
public final Object getContent(Class[] classes)
throws IOException
openConnection().getContent(Class[])
classes - Java 型の配列
IOException - 入出力例外が発生した場合URLConnection.getContent(Class[])public static void setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
URLStreamHandlerFactory を設定します。このメソッドは、使用する Java 仮想マシンで 1 回しか呼び出せません。
URLStreamHandlerFactory インスタンスは、プロトコル名からストリームプロトコルハンドラを構築するのに使用されます。
セキュリティーマネージャーが存在する場合、このメソッドは最初にセキュリティーマネージャーの checkSetFactory メソッドを呼び出すことにより、この操作が許可されていることを確認します。この結果、SecurityException がスローされることがあります。
fac - 目的のファクトリ
Error - アプリケーションでファクトリがすでに設定されている場合
SecurityException - セキュリティーマネージャーが存在し、その checkSetFactory メソッドがこの操作を許可しない場合java.net.URL#URL(java.lang.String, java.lang.String,,
URLStreamHandlerFactory,
SecurityManager.checkSetFactory()
|
Foundation 1.1.2 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。