Web アプリケーションの開発

ここでは、Web アプリケーションの作成方法、および Web アプリケーションにリソースとコンポーネントを追加する方法について説明します。

Web アプリケーションの作成

デフォルトの JRun サーバには、Web アプリケーション開発に使用できる空の Web アプリケーションが用意されています。Web アプリケーションルートディレクトリは、<JRun のルートディレクトリ>/servers/default/default-ear/default-war です。JRun は、アプリケーションの基本ディレクトリ構造、最小限の情報が格納された web.xml ファイル、およびアプリケーションの URL マッピングを作成します。サーブレット、JSP、および EJB の開発を開始してから、default-war ディレクトリ構造にそれらを配置できます。

さらに、JMC を使用して JRun サーバを作成すると、そのサーバ上にデフォルトの Web アプリケーションが作成されます。Web アプリケーションに対して追加する場合と同じ規則を使用して、コンテンツをデフォルトのアプリケーションに追加します。Web アプリケーションへのリソースの追加の詳細については、 「Web アプリケーションコンポーネントの追加」 を参照してください。

Web アプリケーションコンポーネントの追加

完全な Web アプリケーションは、サーブレット、JSP、HTML ページ、Flash (.swf) ファイル、イメージ、タグライブラリ、JavaBeans、Enterprise JavaBeans、その他のアプリケーションリソースから構成されます。Web アプリケーションの開発作業の一部として、アプリケーションのディレクトリ構造にこれらのコンポーネントを追加します。

次のセクションでは、Web アプリケーションに各コンポーネントを追加する方法について説明します。

ディレクトリの追加

Web アプリケーションのディレクトリ構造では、WEB-INF という名前のサブディレクトリが必ず必要です。このディレクトリについては、 「Web アプリケーションのディレクトリ構造」 を参照してください。

ただし、多くの Web アプリケーションでは、アプリケーションのルートディレクトリの下に WEB-INF 以外のディレクトリが追加されています。追加のディレクトリに .class や JAR ファイルが含まれておらず、それらがアプリケーションのクラスパスに含まれている場合は、アプリケーションルートにサブディレクトリを追加する際に特別な作業を行う必要はありません。

たとえば、通常は、アプリケーションルートディレクトリの下にある images ディレクトリにイメージ ファイルを配置します。この他の一般的なディレクトリとして、複数のアプリケーションリソースで共有するファイルが格納される include ディレクトリがあります。

HTML ページの追加

アプリケーションのルートディレクトリは、アプリケーションファイルを提供するためのドキュメントルートとして機能します。アプリケーションの HTML ページをアプリケーションルートの下か、または WEB-INF ディレクトリ以外のアプリケーションルートのサブディレクトリに追加します。たとえば、Web アプリケーションが <JRun のルートディレクトリ>/servers/<JRun サーバ>/<Web アプリケーション> にある場合は、デフォルトのトップページファイルを <JRun のルートディレクトリ>/servers/<JRun サーバ>/<Web アプリケーション>/index.html に配置します。

JSP の追加

JSP は、HTML とスクリプトコードを含んでいます。JSP (.jsp ファイル) は、クライアントから最初に要求されたときに、Java ソースコードファイル (.java ファイル) に変換され、続いて Java クラスファイル (.class ファイル) にコンパイルされます。JSP 作成方法の詳細については、弟 4 章、「サーブレットと JSP の使用」を参照してください。

Web アプリケーションに JSP を追加するには、アプリケーションのルートディレクトリか、またはWEB-INF にあるディレクトリ以外のアプリケーションルートの下のディレクトリに JSP をコピーします。

メモ:  JRun では、JSP のリクエストに応じて作成されるファイルが、WEB-INF/jsp ディレクトリに書き込まれます。

Java サーブレットの追加

Java サーブレットは .class ファイルによって表されます。Web アプリケーションにサーブレットを追加する手順は、サーブレットの保管場所によって異なります。通常、サーブレットは次のいずれかの場所に保管されます。

ディレクトリ WEB-INF/classes と WEB-INF/lib を Web アプリケーションクラスパスに組み込みます。これらのディレクトリ内のすべての .class および JAR ファイルはリロード可能です。

重要な概念は、JRun がサーブレットを提供する方法を知ることです。定義では、アプリケーションサーバは、WEB-INF ディレクトリまたは WEB-INF のサブディレクトリのファイルを直接提供できません。しかし、サーブレット .class ファイルは通常、JAR ファイル内の WEB-INF/classes、WEB-INF/classes のサブディレクトリ、または WEB-INF/lib に格納されます。次の手順は、サーブレットがクライアントにデータを提供する方法を示したものです。

アプリケーションにサーブレットを追加するには

  1. サーブレット .class ファイル、またはサーブレット .class ファイルが含まれている JAR ファイルを、適切なディレクトリにコピーします。
  2. web.xml または default-web.xml ファイルでサーブレットを定義します。
    1. web.xml でサーブレット要素を作成します。
    2. web.xml でサーブレット URL マッピングを作成します。

      サーブレットマッピングは、サーブレットを URL パターンと関連付けます。

指定された URL パターンに一致するサーブレットパスがリクエスト URI に含まれる場合、JRun は関連するサーブレットを呼び出します。サーブレットを明示的に定義しない場合は、暗黙のマッピング /servlet を使用して WEB-INF/classes ディレクトリに格納するサーブレットを要求できます。

ServletInvoker の使用

JRun は暗黙で /servlet を ServletInvoker サーブレットにマッピングします。これは、web.xml または default-web.xml ファイルで明示的に定義されていないサーブレットに対する、汎用的な呼び出しメカニズムです。定義されていないサーブレットを参照するには、http://<Web サーバ>:<ポート番号>/<Web アプリケーション>/servlet/<サーブレットクラス名> のように、リクエストする URL に /servlet を指定します。

メモ:  サーブレットクラス名には .class を含めないようにしてください。

サーブレットを処理するためにサーブレット要素を明示的に定義する必要はありません。ServletInvoker サーブレットは、サーブレットクラス名を使用して仮のサーブレット登録を作成するからです。

ServletInvoker サーブレットは、主に開発およびテスト中に使用します。ただし、セキュリティとパフォーマンス上の理由から、すべてのサーブレットに対して明示的マッピングを定義して、運用システムのデフォルトの ServletInvoker マッピングを上書きする必要があります。

タグライブラリの追加

JavaServer Pages の仕様書には、タグライブラリに関するフレームワークが記述されています。開発者は、タグライブラリを使用して関連する機能セットを 1 つのカスタムタグセットにカプセル化できます。JSP では、これらのタグを使用して、ライブラリに組み込まれている機能を利用できます。たとえば、タグライブラリを作成してデータベースアクセスの簡略化、電子商取引のオペレーションの実行、URL の書き換え、または XML のトランスフォームを行うことができます。

タブライブラリは、タグまたはカスタムタグと呼ばれる 1 つ以上のアクションから構成されます。各アプリケーションは、関連付けられた Java タグハンドラクラスにコーディングされている処理を実行します。ユーザーは、カスタムタグを定義し、タグハンドラをコーディングするとともに、TLD (タグライブラリディスクリプタ) ファイルで各カスタムタグの機能 (属性を含む) を定義します。

デプロイ可能なタグライブラリでは、タグハンドラ、TLD ファイル、TEI (Tag Extra Information) クラス、およびその他のサポートクラスを JAR ファイルに組み込みます。この JAR ファイルは、通常 Web アプリケーションの WEB-INF/lib ディレクトリに配置されます。

タグライブラリの詳細については、『JRun プログラマーガイド』を参照してください。

EJB の追加

Web アプリケーションが EJB にアクセスできるようにするには、EJB を Web アプリケーションのホストである JRun サーバか、または Web アプリケーションにアクセス可能な JRun サーバにデプロイしなければなりません。

JRun での EJB の開発とデプロイの詳細については、 「EJB の概要」 を参照してください。

リソースの追加

追加可能なリソースには、イメージディレクトリや JavaBeans の他、データベースドライバなどのリソース用のクラスファイルなどがあります。これらのリソースを Web アプリケーションに追加するときは、Web アプリケーションディレクトリ構造内の正しい場所に配置する必要があります。.class ファイルや JAR ファイルによってリソースを提供する場合は、Web アプリケーションクラスパス (通常は WEB-INF/classes または WEB-INF/lib) に含まれているディレクトリにファイルを配置する必要があります。