|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.net.URL
URL
クラスは、World Wide Web 上の「リソース」を指すポインタである URL (Uniform Resource Locator) を表します。リソースは、ファイルやディレクトリのような単純なものであることも、もっと複雑なオブジェクト (データベースや検索エンジンへのクエリーなど) への参照であることもあります。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」または「参照 (reference)」とも呼ぶ) を追加することができます。アンカーを指定するには、シャープ記号「#」の後に文字列を指定します。次にアンカーの例を示します。
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 から情報が継承されます。ただし、ファイルコンポーネントの指定は必須です。オプション指定のアンカーは継承されません。
コンストラクタの概要 | |
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)
指定されたプロトコル名、ホスト名、ファイル名を使って、絶対 URL を作成します。 |
|
URL(URL context,
String spec)
指定されたコンテキストで spec の指定を解析することにより、URL を作成します。 |
|
URL(URL context,
String spec,
URLStreamHandler handler)
指定された context 内で spec 引数の指定を解析することにより、URL を作成します。 |
メソッドの概要 | |
boolean |
equals(Object obj)
2 つの URL を比較します。 |
Object |
getContent()
この URL のコンテンツを返します。 |
String |
getFile()
この URL のファイル名を返します。 |
String |
getHost()
この URL のホスト名を返します (設定されている場合)。 |
int |
getPort()
URL のポート番号を返します。 |
String |
getProtocol()
この URL のプロトコル名を返します。 |
String |
getRef()
この 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 のフィールドを設定します。 |
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
オブジェクトを作成します。port
番号に -1
を指定すると、URL はプロトコルのデフォルトのポートを使うようになります。
指定されたプロトコルで最初に URL オブジェクトを作成するときには、そのプロトコルのためのストリームプロトコルハンドラオブジェクトが作成されます。このストリームプロトコルハンドラオブジェクトは、URLStreamHandler
クラスのインスタンスです。
URLStreamHandlerFactory
のインスタンスをストリームハンドラファクトリとして設定している場合は、そのインスタンスの createURLStreamHandler
メソッドがプロトコル文字列を引数として呼び出されて、ストリームプロトコルハンドラを作成する
URLStreamHandlerFactory
が設定されていない場合、あるいはファクトリの createURLStreamHandler
メソッドが null
を返した場合は、コンストラクタが次のシステムプロパティの値を探す
このシステムプロパティの値がjava.protocol.handler.pkgs
null
でなければ、値は、垂直スラッシュ文字 '|
' で区切られた、パッケージのリストとして解釈される。コンストラクタは、次の名前のクラスをロードしようとする
ここで、<package> にはパッケージの名前が入り、<protocol> にはプロトコルの名前が入る。このクラスが存在しない場合、あるいはクラスは存在してもそれが<package>.<protocol>.Handler
URLStreamHandler
のサブクラスではない場合には、リストにある次のクラスを試すことになる
このクラスが存在しない場合、あるいはクラスは存在してもそれがsun.net.www.protocol.<protocol>.Handler
URLStreamHandler
のサブクラスではない場合には、MalformedURLException
がスローされる
protocol
- プロトコルの名前host
- ホスト名port
- ポート番号file
- ホストファイルSystem.getProperty(java.lang.String)
,
setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory)
,
URLStreamHandler
,
URLStreamHandlerFactory.createURLStreamHandler(java.lang.String)
public URL(String protocol, String host, String file) throws MalformedURLException
このメソッドの機能は、引数に protocol
、host
、-1
、file
を指定して 4 つの引数を受け取るコンストラクタを呼び出すのと同じです。
protocol
- 使用するプロトコルhost
- 接続先のホストfile
- ホスト上のファイルURL(java.lang.String, java.lang.String, int, 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
を指定すると、URL では次に示す、プロトコルのデフォルトのストリームハンドラが使われます。
java.net.URL#URL(java.lang.String, java.lang.String, int, java.lang.String)
ハンドラが null ではなく、セキュリティマネージャが存在する場合、NetPermission("specifyStreamHandler")
アクセス権を指定してセキュリティマネージャの checkPermission
メソッドが呼び出されます。この結果、 SecurityException になることがあります。
protocol
- プロトコル名host
- ホスト名port
- ポート番号file
- ホストファイルhandler
- ストリームハンドラcheckPermission
メソッドがストリームハンドラの明示的な指定を許可しない場合System.getProperty(java.lang.String)
,
setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory)
,
URLStreamHandler
,
URLStreamHandlerFactory.createURLStreamHandler(java.lang.String)
,
SecurityManager.checkPermission(java.security.Permission)
,
NetPermission
public URL(String spec) throws MalformedURLException
String
表現から URL
オブジェクトを作成します。
このコンストラクタは、1 番目の引数に null
を指定して、引数が 2 つのコンストラクタを呼び出すことと同じです。
spec
- URL として解析される String
URL(java.net.URL, java.lang.String)
public URL(URL context, String spec) throws MalformedURLException
spec
の指定を解析することにより、URL を作成します。context
引数が null
でなく、spec
引数が部分的な URL 指定である場合は、不足しているコンポーネントの文字列は context
引数から継承されます。
spec
引数に指定された内容が、特定のプロトコルを指定しているかどうかが解析されます。spec
の中で、最初に出現した ASCII 文字のスラッシュ (「/
」) の前に ASCII 文字のコロン (「:
」) がある場合は、そのコロンよりも前にある文字列によりプロトコルが指定されます。
spec
引数によりプロトコルが指定されない場合は、次のようになります。
context
引数が null
でない場合は、プロトコルが context
引数からコピーされる
null
である場合は、MalformedURLException
がスローされる
spec
引数によりプロトコルが指定される場合は、次のようになります。
context
引数が null
である場合、あるいは spec
引数とは異なるプロトコルが指定されている場合、context
引数は無視される
null
ではなく、spec
引数と同じプロトコルが指定されている場合は、新しく作成される URL
に、context
引数から host
、port
番号、および file
がコピーされる
次のコンストラクタは、次に示すような、URLStreamHandler
の型の適切なストリームプロトコルハンドラを探します。
ストリームプロトコルハンドラのjava.net.URL#URL(java.lang.String, java.lang.String, int, java.lang.String)
parseURL
メソッドが呼び出すことにより、指定の残りのフィールドが解析され、context
引数によるデフォルト設定がオーバーライドされますcontext
- 指定を解析するためのコンテキストspec
- URL の String
表現URL(java.lang.String, java.lang.String, int, java.lang.String)
,
URLStreamHandler
,
URLStreamHandler.parseURL(java.net.URL, java.lang.String, int, int)
public URL(URL context, String spec, URLStreamHandler handler) throws MalformedURLException
context
内で spec
引数の指定を解析することにより、URL を作成します。context
引数が null
ではなく、spec
引数が部分的な URL である場合、不足しているコンポーネントのすべての文字列は context
引数から継承されます。
String
引数に指定した値が解析され、それがプロトコルを表しているかどうかが判別されます。String
内の最初の ASCII 文字のスラッシュ「/
」よりも前に ASCII 文字のコロン「:
」がある場合、コロンよりも前の文字がプロトコルになります。
spec
引数に指定した値がプロトコルではない場合は、次のようになります。
context
引数が null
ではない場合は、context
引数のプロトコルが使用される
context
引数が null
の場合は、MalformedURLException
がスローされる
spec
引数に指定した値がプロトコルの場合は次のようになります。
context
引数が null
または spec
引数とは異なるプロトコルを表す場合、context
引数は無視される
context
が null
ではなく、spec
引数と同じプロトコルを表す場合、新しく作成する URL
に、context
引数のホスト、ポート番号、ファイルがコピーされる
引数 handler
が指定されている場合は、それを URL のストリームハンドラとして使い、context
のストリームハンドラをオーバーライドします。ストリームハンドラの指定には、"specifyStreamHandler"
への NetPermission が必要です。それがない場合は SecurityException
がスローされます。
そうでない場合は、handler
が null で context
が有効であるときは、context
のプロトコルハンドラが継承されます。ストリームプロトコルハンドラの parseURL
メソッドを呼び出して spec
の残りのフィールドを解析し、context
引数によって設定されたデフォルト値をすべてオーバーライドします。
context
- 解析するコンテキストspec
- URL の String
表現handler
- URL のストリームハンドラcheckPermission
メソッドがストリームハンドラの指定を許可しない場合URL(java.lang.String, java.lang.String, int, java.lang.String)
,
URLStreamHandler
,
URLStreamHandler.parseURL(java.net.URL, java.lang.String, int, int)
メソッドの詳細 |
protected void set(String protocol, String host, int port, String file, String ref)
protocol
- 使用するプロトコルhost
- 接続先のホスト名port
- 接続先のプロトコルポートfile
- ホスト上の指定のファイル名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 オブジェクトが等しいと判断するための条件は、プロトコル、参照先ホスト、ホスト上のポート番号、およびホスト上のファイルとアンカーが等しいことです。obj
- 比較対象の URLtrue
、そうでない場合は false
public int hashCode()
URL
に使うハッシュコードpublic boolean sameFile(URL other)
URL
と other
引数がどちらも同じリソースを参照している場合は true
を返します。2 つの URL
は同じアンカーを含んでいない可能性があります。other
- 比較対象の URL
true
、そうでない場合は false
public String toString()
URL
の文字列表現を構築します。このオブジェクトのストリームプロトコルハンドラの toExternalForm
メソッドを呼び出すことによって文字列が作成されます。URL(java.lang.String, java.lang.String, int, java.lang.String)
,
URLStreamHandler.toExternalForm(java.net.URL)
public String toExternalForm()
URL
の文字列表現を構築します。このオブジェクトのストリームプロトコルハンドラの toExternalForm
メソッドを呼び出すことによって文字列が作成されます。URL(java.lang.String, java.lang.String, int, java.lang.String)
,
URLStreamHandler.toExternalForm(java.net.URL)
public URLConnection openConnection() throws IOException
URL
が参照するリモートオブジェクトへの接続を表す URLConnection
オブジェクトを返します。
この URL のプロトコルハンドラの openConnection
メソッドを呼び出すたびに、新しい接続が開かれます。
HTTP や JAR などの、URL のプロトコルについては、専用の URLConnection の public サブクラスが、java.lang、java.io、java.util、または java.net のパッケージ内、あるいはそのサブパッケージ内に存在します。返される接続は、そのサブクラスのものになります。たとえば、HTTP プロトコルに対しては HttpURLConnection が返され、JAR に対しては JarURLConnection が返されます。
URLConnection
URL(java.lang.String, java.lang.String,
int, java.lang.String)
,
URLConnection
,
URLStreamHandler.openConnection(java.net.URL)
public final InputStream openStream() throws IOException
URL
への接続を確立し、その接続から入力を受け取るための InputStream
を返します。このメソッドは次のメソッドの短縮形です。
openConnection().getInputStream()
openConnection()
,
URLConnection.getInputStream()
public final Object getContent() throws IOException
openConnection().getContent()
URLConnection.getContent()
public static void setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
URLStreamHandlerFactory
を設定します。このメソッドは、使用する Java Virtual Machine で 1 回しか呼び出せません。
アプリケーションの URLStreamHandlerFactory
を設定します。アプリケーションからは、このメソッドを最大で 1 回しか呼び出すことができません。
セキュリティマネージャが存在する場合、このメソッドはまずセキュリティマネージャの checkSetFactory
メソッドを呼び出すことにより、この操作が許可されていることを確認します。この結果、SecurityException になることがあります。
fac
- 設定したいファクトリcheckSetFactory
メソッドがこの操作を許可しない場合URL(java.lang.String, java.lang.String,
int, java.lang.String)
,
URLStreamHandlerFactory
,
SecurityManager.checkSetFactory()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |