第1回 サーブレットアプリケーションを体験しよう

この連載は、Javaを利用したWebアプリケーションの開発に必要な知識を、ツールを用いて手軽に自分の手を動かしながら覚えていただくことを目的としています。ツールを使うと面倒な設定をすることなく、自分でアプリケーションを試してみることができます。いままでサーブレットのが難しいと感じていた方も、この記事を読んで自分で試すことで、本格的な学習の良いきっかけをつかんでください。(編集局)

ボーランド
新井正広
2004/5/15


JavaによるWebアプリケーションを手軽に試して学習するには

 Webアプリケーションを作成するには、多くの前提知識が必要です。そのため、多くの方が「これらの事項をすべて熟知しないと開発がスタートできない」と感じ、結果として「JavaによるWebアプリケーションの開発は難しいな」というところで踏みとどまってしまう傾向があります。これは非常に残念なことです。そこで、この連載では、順序を逆転して、「開発作業を支援するツール」を最大限利用して、まず動作するものを作成していただきます。動作するものが作成できたら、これを自分なりにカスタマイズして、いろいろなことを試してみてください。そのうえで、「実際のアプリケーション開発の中で必要な知識が出てきたら、順次これらを吸収する」というように、少し気楽にJavaによるWebアプリケーション開発を体験していただきたいと思います。

 通常、JavaによるWebアプリケーションの開発をスタートするには、Javaに関する知識に加え、以下のような知識や環境のセットアップが必要です。参考までに読んでください。開発ツールを活用することによって、これら必要な作業の多くを自動化、あるいは効率的に進めることが可能になります。

サーブレットを利用したアプリケーション開発に必要な知識
  • サーブレットの特徴
  • サーブレットクラスの継承関係
  • サーブレットクラスのライフサイクル
  • 日本語処理のコツ
  • Webサーバにアプリケーションの実行方法を指示するためのXMLファイルの書き方
  • Webサーバに作成したアプリケーションをインストールするためのファイルの作成方法
  • Webサーバの起動・作成したアプリケーションのインストール・テスト・終了の方法
JavaによるWebアプリケーションの開発に必要なコンポーネント
  • Java 2 SDK (JDK 1.4.2 など)
  • TomcatなどのWebコンテナ (Java対応のWebサーバ)
  • エディタ(あるいは統合開発環境など)
  • Web開発用のPlug-inなど

 本連載では「開発作業を支援するツール」として、Borland JBuilder Xトライアル版を利用します。製品をインストールするだけで、アプリケーションの開発に必要なすべてのコンポーネントが自動的にインストール/設定されます。そのため、追加で何らかの作業を行うことなく、Webアプリケーションを試すことができます。

 Borland JBuilder Xトライアル版の入手はボーランドのWebサイトから申し込みが可能です。ここでトライアル版CD-ROMを申し込むと、無償でCD-ROMが郵送されてきますので、インストールガイドに従ってインストールしてください。


Webアプリケーションの基本原理

 実際に試してみる前にWebアプリケーションとは何かについて簡単に触れておきましょう。Webアプリケーションとは、Webブラウザからのリクエストによって動的なコンテンツを提供するアプリケーションを指します。クライアントにWebブラウザがインストールされていれば、ネットワークに接続されているあらゆるクライアントにアプリケーション機能を容易に提供できるため、爆発的に適用範囲が増えていることは皆さんもご承知のとおりです。

 クライアントとなるブラウザは、Webサーバに対しリクエストを投げ、これに対しサーバが動的にコンテンツを生成し、クライアントにコンテンツを提供します。

 Webブラウザに動的なWebページを提供する代表的な方法には、CGIなど古くから使われている技術に加え、ここで学習するサーバーサイドJavaと呼ばれる技術が存在します。ここでは、初めに古くから使われている技術であるCGIについて復習をしておきましょう。

図1 Webアプリケーション(CGI)

 Webサーバは、クライアントから要求されたURLのパターンから、これがCGIに対するものであることを認識すると、該当のCGIプロセスを起動し、リクエストの内容を環境変数や標準入力を通じて伝えます。CGIは、これらを解析し、必要なレスポンス(HTMLドキュメント)を組み立て、その内容を標準出力から提供します。つまり、コマンドラインアプリケーションと同じように動作すると考えることができます。このようにCGIは非常に単純な仕組みで構築されていますが、リクエストのたびに新たなプロセスを起動する必要があることから、あまり大規模なシステムでの利用には適さないといわれていました。

HTTPプロトコル

 WebブラウザとWebサーバの間の通信手順は、HTTP(Hyper Text Transfer Protocol:ハイパーテキスト転送プロトコル)として定義されています。HTTPプロトコルに基づいてサーバにリクエストを行う方法には、指定したURLに対するデータを要求するGETメソッド、データを添付してリクエストを行うPOSTメソッドなど、いくつかの命令パターンがあります。

 HTTPの詳細については。連載:インターネット・プロトコル詳説(Master of IP Network)を参考にするとよいでしょう。

サーブレットで動くWebアプリケーションとは

 CGIがWebサーバ上で動作するコマンドラインアプリケーションのように動作するのとは異なり、サーブレットはWebコンテナと呼ばれるJava対応のWebサーバ上で動作するJavaアプリケーションととらえることができます。

 サーブレットを使用してアプリケーションを作成するときは、Java言語でクライアントからの要求に応じたHTMLを動的に生成するクラス(サーブレットクラス)を作成し、TomcatなどのWebコンテナに配備します。

 HTMLを動的に生成するクラス(サーブレットクラス)は、一から作成するのではなく、その基本機能が実装されているjavax.http.HttpServletクラスを派生(拡張)して、オリジナルのコンテンツを生成するプログラムコードを記述します。

 クライアントからのアクセスがあると、Webコンテナは、インストールされたサーブレットの中から、適切なサーブレットクラスのメソッドを呼び出し、レスポンスを受け取り、これをクライアントWebブラウザに返します。

図2 サーブレットの呼び出し

HttpServletクラスとサーブレットのライフサイクル

 一般にサーブレットを作成するときは、javax.http.HttpServletクラスを派生(拡張)して、オリジナルのコンテンツを生成するプログラムコードを記述します。そこで、派生(拡張)クラスの作成方法の前に、そのベースとなるクラスについて、確認しましょう。これらのWebコンテナの一部として提供されており、JBuilder X の場合では「<JBuilderX>/extras/jakarta-tomcat-4.0.6-src.zip」にソースコードが格納されています。

 サーブレットは、図2にあるように、Webコンテナにロードされ、実行されるJavaクラスです。ここで、サーブレットがどのように呼び出されるのかを確認しましょう。サーブレットのライフサイクルを図示したものが図3です。

図3 サーブレットのライフサイクル

 図3に示したようにサーブレットは以下の順序で動作します。

  1. クラスファイルがサーブレットコンテナからJava VM上にロードされる
  2. 初期化メソッドが呼び出され、サーブレットが実行可能な状態となる
  3. クライアントからリクエストがあるとserviceメソッドが呼び出される
  4. 更新されたクラスが配備された場合や、コンテナがシャットダウンするときに、destroyメソッドが呼び出される

 このように、サーブレットはWebコンテナに動作可能な状態として常に待機するので、クライアントからの呼び出しがあると即座に応答します。

1/2

 INDEX

第1回 サーブレットアプリケーションを体験しよう
Page1
JavaによるWebアプリケーションを手軽に試して学習するには
Webアプリケーションの基本原理
サーレットで動くWebアプリケーションとは
  Page2
実際にサーブレットを作ってみる





「ツールでトライ!初めてのWebアプリケーション」記事一覧




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間