第三章 Webアプリケーションをはじめよう
Webアプリケーションは、ウェブアプリケーションサーバーを動的に拡張し、2種類の形式があります。
Java2プラットフォーム上で、ウェブコンポーネントは動的な拡張可能な機能をウェブサーバーに提供します。
ウェブコンポーネントは、サーブレット、JSPページ、ウェブサービスで使用可能です。
ウェブクライアント(代表例としてウェブブラウザ)とウェブアプリケーションサーバー間の関連性は、以下の図に示される形式になります。

サーブレットとは、動的にリクエストを処理したり、レスポンスを作成するJavaのクラスをいいます。
JSPとは、HTMLのようなマークアップランゲージで、サーブレットに変換され実行されます。
サーブレットやJSPは、相互に使用可能で、それぞれに独自の強みがあります。
サーブレットは、サービス指向のアプリケーションを作成するのに適しており、
JSPは、プレゼンテーション指向のアプリケーションを作成するのに適しています。
インタラクティブなウェブアプリケーションを構築するために、サーブレットやJSPの技術と
他のJavaテクノロジーやフレームワークなどが、以下の関連をもって、開発され続けています。

サーブレットは、すべてのウェブアプリケーションにおける基盤となる技術です。
サーブレットを書くつもりは無い場合でも、サーブレットの基礎知識は押さえておく必要があります。
抽象化されたそれぞれのテクノロジーによって、より早く、よりスケーラブルで、より強力なウェブアプリケーション開発をすることができます。
ウェブコンポーネントの実行時におけるプラットフォームサービスのことを、ウェブコンテナと呼びます。
ウェブコンテナは、リクエストをディスパッチしたり、セキュリティサービス、平行処理などのライフサイクル管理サービスを提供します。
また、トランザクションサービス、名前解決、EmailなどのアクセスするAPIを提供します。
ウェブアプリケーションを動作させるために必要な技術の1つに、
ウェブコンテナに、アプリケーションをインストール、もしくは配備する際の設定方法があります。
設定情報は、XML形式のテキストで、ウェブアプリケーションデプロイメントディスクリプタ(DD)と呼びます。
DDは、Java Servlet仕様書の記載に準拠する必要があります。
また、この章では、ウェブアプリケーションの開発に関わる作業の概要を説明します。
最初に説明するのは、ウェブアプリケーションの開発ライフサイクルをまとめたものです。
次にどのようにパッケージングして、アプリケーションサーバー上に展開をするのかを
非常に簡単なアプリケーションで説明します。
また最も良く使われる設定パラメータを指定するために、Duke書店のサンプルアプリケーションを学習します。
最後にどのようにウェブアプリケーションからデータベースにアクセスするのか、設定方法について学びます。
ウェブアプリケーションは、ウェブコンポーネント、画像などの静的なリソースファイル、およびヘルパークラスや、各種ライブラリから構成されます。
ウェブコンテナは、ウェブコンポーネントの機能を強化し、より容易に開発できるようにさまざまなサービスを提供します。
ウェブアプリケーションの開発プロセスは、従来型の単独でのクラスを用いたアプリケーション開発プロセスとは異なり、これらのサービスを受ける必要があります。
ウェブアプリケーションを作成、配備、実行するプロセスの概要は以下のとおりになります。
ウェブコンポーネントの開発は、以降の章で説明しています。
次の節では、Hello,World.風なプレゼンテーション指向のアプリケーション開発を説明します。
このアプリケーションは、HTMLフォームに名前を入力した後、挨拶をしてくれるアプリケーションです。


この節はオリジナルコンテンツです。
実際のサンプルアプリケーションは、NetBeanIDEやAntを使ったビルドをする必要があります。
ですが、一般的では無いので、EclipseWTPでアプリケーションを実行します。
Java環境を整えるには、以下のコンテンツを参考にして構築してください。
こちらを参考にして、入手してください。
Java関連/Jakarta Standard-1.1 Taglib
本ウェブの元ネタは、以下のURLから入手することができます。
サンプルアプリケーションも入手することができます。ぜひ、ダウンロードしましょう。
http://java.sun.com/javaee/5/docs/tutorial/information/download.html
すでに1度、コンテンツは作成済なのですが、改めて説明します。
Eclipseの新規プロジェクトを作成します。ファイルメニューから、動的Webプロジェクトを選択します。
プロジェクトエクスプローラー上で、右クリックして、コンテキストメニューから新規プロジェクトを作成するのもありです。
なぜ、やらないかは、画面キャプチャが非常にやりにくいためです。

ウィザード形式でプロジェクトの設定が始まります。
ターゲットランタイムを選択するため、新規のボタンをクリックします。

新規サーバーランタイム環境の定義のダイアログが出現します。
ここで、Apache Tomcat v6.0を選択し、新規ローカルサーバーの作成にチェックをいれて、
次へのボタンをクリックします。

Tomcatサーバーのインストールディレクトリを指定します。ここでは、D:¥tomcatを指定しています。

新規Webプロジェクトの設定画面に戻ってきました。
次へのボタンをクリックします。

モジュール設定の設定画面です。デフォルトのままで、良いでしょう。
完了のボタンをクリックします。

こうゆう設定って1度設定してしまうと、おしまいなので再度やろうとすると、すぐに忘れてしまうんですよね。
この方法は、一例ですので他にも方法があるかもしれません。
プロジェクトのプロパティを開き、左ペインのJava EEモジュール依存関係の設定画面を開きます。
変数の追加のボタンをクリックします。

新規変数クラスパスエントリの画面が表示されます。
変数の構成のボタンをクリックします。

クラスパスの設定画面が表示されました。
新規のクラスパス変数を定義します。
新規のボタンをクリックします。

変数名としてTaglibs、パスをダウンロードしたJakarta-taglibs-standardのJarファイルの格納場所を指定します。

新規変数クラスパスエントリに追加されたので、拡張のボタンをクリックします。

サーバービュー上のローカルホストを選択し、右クリックでコンテキストメニューを開きます。
コンテキストメニューからプロジェクトの追加および除去を選択します。

サーバー上に構成するプロジェクトの画面が表示されますので、Helloプロジェクトをサーバーに割り付けます。

元ネタのサンプルから、index.jsp、responce.jsp、duke.wavingを持ってきます。
ディレクトリ的には、「¥javaee-5-doc-tutorial-1.0_05¥javaeetutorial5¥examples¥web¥hello1¥web」にあります。

プロジェクトのWebContentに3つのファイルを貼り付けします。

アプリケーションをサーバーにデプロイする方法は簡単です。
サーバービュー上で状態が再公開になっていたら、デプロイが必要です。

早速、サーバーを起動します。
サーバーのコンテキストメニューを開いて、開始を選択します。

開始中にこのような画面が開かれてしまう場合、他のプログラムがTomcatのデフォルトのポートを使用しています。

ポートを変更するには、サーバービュー上のローカルサーバーを選択し、ダブルクリックします。
そうすると、このような画面が開かれます。

Eclipse上のローカルブラウザ上で見てみましょう。
アドレスは、http://localhost:8180/Hello です。
localhostは、自分のPC上という意味で、ローカルで稼動しているTomcatアプリケーションサーバーを
指します。
8180というポート番号は、上で変更したポート番号指定です。
Helloというのは、ここではプロジェクト名になります。

たくさんのキャプチャが必要でしたが、このとおりの手順で実施すれば、環境設定はうまくいくはずです。
なにせ、キャプチャをしながらコンテンツを作成したので。
設定についての細かな意味というのは、やった時点では判らなくとも、後になって考えてみると、
ああ、そういうことだったのね。と判る時が必ず来ます。
以上です。