JavaのURLクラスを使いこなす:ウェブへ簡単にアクセス

文:Jeff Hanson(TechRepublic)  翻訳校正:原井彰弘
2007-12-13 10:05:00
  • このエントリーをはてなブックマークに追加

 Javaのネットワーク関連のクラスを用いることにより、ネットワーク上またはリモートのマシンと通信を行うアプリケーションを実装することはできる。しかし、JavaプラットフォームはインターネットやURLといったレベルで処理を行う機能も有している。

 JavaのURLクラスを用いることにより、ウェブリソースへのアクセスはローカルファイルへのアクセスと同じくらい簡単になるのである。ここでは、どのようにすればURLクラスの力をうまく引き出し、コネクションを介してデータの読み書きを行うことができるかを見てみよう。

URLクラスを扱う

 URLは、ウェブ上に存在するファイル、ウェブページ、ウェブアプリケーションのようなリソースを識別するために用いられており、多数の構文上の要素から構成されている。例として以下のURLを見て欲しい。

http://www.example.com:8080/mywebapps/AWebApp

 プロトコルは「http」として識別される。また、ホスト名は「www.example.com」、ポート番号は「8080」である。「/mywebapps/AWebApp」という残りのURLは、アクセスしているサイト上のリソースを示している。この例の場合、そのリソースとは(偶然だが)ウェブアプリケーションである。URLにはフラグメント識別子やクエリ文字列のようなほかの要素を含むことも可能である。

 URLを用いて取り出せるデータには多種多様な形式があるが、単一の仕組みでURLへの読み書きを行わなければならない。Javaのjava.netパッケージではそのような機能が提供されており、これから我々が議論するURLクラスもその中に含まれている。

 URLクラスは、URL識別子を抽象化したものである。URLクラスを用いることによって、Javaから特定のURLとの接続を行い、データやヘッダのの読み書きを行ったり、それ以外のURLに関する操作をしたりすることが可能になる。これから、URLクラスやjava.ioパッケージに含まれているストリーム関連のクラスを用いて、どのような仕組みでURLに関する処理をファイルやソケット接続と同じ手法で実現できるのかを述べていく。

コンストラクタ

 java.net.URLクラスのインスタンスを作成する際には、publicコンストラクタを利用する。URLクラスには、柔軟性を持たせるために多数のコンストラクタが用意されており、「完全なURL文字列」「プロトコル、ホスト名、ファイルまたはリソース名に分割された文字列」「プロトコル、ホスト名、ポート番号、ファイル名に分割された文字列」などさまざまな入力形式に対応している。ここでは、完全なURLを用いてURLクラスのインスタンスを生成してみよう。

URL aURL = new URL("http://www.example.com:8080/index.html");

 この例では、URLクラスのインスタンスは完全なURLで作成されており、プロトコルは「http」、ホスト名は「www.example.com」、ポート番号は「8080」、そしてファイルまたはリソース名は「index.html」となっている。ちなみに、コンストラクタの引数として入力されたURLに文法的な誤りがある場合、コンストラクタはMalformedURLExceptionをスローする。

  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]