第1回:Javaの基礎はキーワードを知ることから始まる -1-2-3-4
小中規模なWebアプリケーションの開発には、PerlやPHPといったスクリプト言語が使われることも多いが、大規模なWebアプリケーションでは、マイクロソフトの.NET環境でVisualBasic.NET、C#などを用いて開発することも多い。これに並んで注目されているのが、サン・マイクロシステムズが提唱するJavaを利用したサーバサイドの開発環境であるJSPやサーブレットを使う方法だ

Webアプリケーション構築には、さまざまな開発言語と手法が用意されている。

 小中規模なWebアプリケーションの開発には、PerlやPHPといったスクリプト言語が使われることも多いが、大規模なWebアプリケーションでは、マイクロソフトの.NET環境でVisualBasic.NET、C#などを用いて開発することも多い。これに並んで注目されているのが、サン・マイクロシステムズが提唱するJavaを利用したサーバサイドの開発環境であるJSPやサーブレットを使う方法だ。

Webアプリケーション構築には、さまざまな開発言語と手法が用意されている。

 小中規模なWebアプリケーションの開発には、PerlやPHPといったスクリプト言語が使われることも多いが、大規模なWebアプリケーションでは、マイクロソフトの.NET環境でVisualBasic.NET、C#などを用いて開発することも多い。これに並んで注目されているのが、サン・マイクロシステムズが提唱するJavaを利用したサーバサイドの開発環境であるJSPやサーブレットを使う方法だ。

 マイクロソフトの.NET環境は、Windows 2000 Server(今後は、.NET Server)を中心として構築でよいため比較的開発環境が分かりやすい。それに対し、JSPやサーブレットは、幾つかの開発、実行環境が提供されているため、まずは、どのようにしてJSPやサーブレットが動作するのかを理解しなければならない。

 第1回目では、JSPやサーブレットの仕組みと、開発するためにはどのような環境を用意する必要があるのかを解説していこう。
J2EEによるWebアプリケーションの仕組み

 Javaと総称される環境には、大きく分けて次の3種類がある。

1. J2SE(Java 2 Platform, Standard Edition)

 Javaの基本的なセットだ。パソコン上で動作するJavaアプレットやJavaアプリケーションを開発したり、動作させる際に用いる。パソコン上でJavaを実行するための実行環境として提供されている「JRE(Java Runtime Language)」は、このJ2SEである。

2. J2EE(Java 2 Platform, Enterprise Edition)

 J2SEに、サーバー側で動作させるアプリケーションを構築するのに必要なAPIを加えたもの。

3. J2ME(Java2 Platform, Micro Edition)
 J2SEに、携帯電話や携帯端末などの組み込み機器で使うのに必要なAPIを加えたもの。

 サーバ側で動作するWebアプリケーションを構築する場合には、J2EEを利用する。本稿で説明するJSPやサーブレットは、J2EEが提供する機能の一部である。

 J2EEは、Javaのエンタープライズ向けの仕様であり表1に示す機能およびAPIの含めた総称である。APIとは、一般的にOSがアプリケーションに対して公開するプログラミングの際に利用するインターフェイス規約のことだ。アプリケーションは、基本的にすべての処理をAPI経由で行う。
表1■J2EEで提供される代表的なAPI

機能またはAPI 意味
JSP
(Java Server Pages)
HTMLに含まれるタグのような形式を使ってWebアプリケーションを構築することを可能とする。
JSPで作成されたプログラムは、動的にサーブレットに変換されて実行される
サーブレット(Servlet) サーバ側で動作するJavaのプログラムの実行環境を提供する。Webアプリケーションの開発に用いる
EJB
(Enterprise JavaBeans)
JavaBeansと呼ばれるJavaで作られたコンポーネント(部品)をエンタープライズ向けに管理する機能を提供する。JavaBeansの機能に、クライアントやデータベースとのセッションを管理したり、トランザクション処理に参加したりすることができる機能を追加したものだ
JDBC データベースとの接続をサポートするAPIJTA(Java Transaction API)、トランザクション機能をサポートするAPI
JTS(Java Transaction Service) OMGのOTS(Object Transaction Service)をサポートするトランザクションマネージャ
Java Message Service(JMS) メッセージキューサービスを提供するAPIJNDI(Java Naming and Directory Interface)ディレクトリサーバーへの検索をするためのAPI
JavaMail メール機能をサポートするAPIJava IDL、RMI-IIOPCORBAに準拠したリモートプロシージャ呼び出しをサポートするAPI

本稿では、これらの機能の中でもJSPとサーブレットに焦点を当てて解説していく。

※java.sql パッケージと javax.sql パッケージを含む全てのJDBC 3.0 API は、Java 2 Platform, Standard Edition, version 1.4 (J2SE) にバンドルされています。
リレーショナルデータベースにアクセスする Java 2 Platform, Micro Edition (J2ME) のアプリケーションを作成する場合は、このJDBCオプションパッケージをダウンロードする必要があります。JDBC オプションパッケージ (CDC/Foundation Profile 用) API は、java.sql パッケージのサブセットで、CDC (Connected Device Configuration) を実行するアプリケーションを作成するための簡易パッケージです。
一般のアプリケーションプログラマは、Java 2 SDK, Standard Edition のダウンロードによって、JDBC コア API (java.sql パッケージ) とそれに関連した javadoc ドキュメントがすでにインストールされています。
サーバ側のプログラマ は、Enterprise JavaBeans (EJB) コンポーネントやそれらをサポートするソフトウェアなどのサーバ側のソフトウェアを作成する場合は、Java 2 SDK, Enterprise Edition をダウンロードする必要があります。Enterprise Edition には、JDBC コア API と JDBC オプションパッケージ API (javax.sql パッケージ) の両方が含まれています。DataSource オブジェクトを使用して接続や接続プーリングを行ったり、分散トランザクションを使用する場合は、両方のパッケージが必要になります。
DataSource または RowSet オブジェクトを使用するクライアント側のプログラマは、一般に、サーバ側のコードを作成しなくても、次のどちらかのオブジェクトを使用する場合は、Java 2 SDK, Standard Edition の他に、javax.sql パッケージもダウンロードする必要があります。

DataSource オブジェクト (接続用)
注: DataSource オブジェクトを使用して接続を行う (推奨) 場合は、DataSource の基本的な実装をご使用のドライバに追加する必要があります。
RowSet オブジェクト
Rowset は通常、結果セットにデータを渡したり、スクロール機能を追加するのに便利な方法として使用されます。
Enterprise Edition 全体ではなく javax.sql パッケージだけをダウンロードすると、ディスク容量を節約できます。ご使用のドライバベンダーが javax.sql パッケージをバンドルとして販売している (多くのベンダーにはそれが期待される) 場合は、Java 2 SDK, Standard Edition 以外に何もダウンロードする必要はありません。
注: javax.sql パッケージは、JDBC 2.0 オプションパッケージ API (旧称: JDBC 2.0 標準拡張 API) とも呼ばれます。http://java.sun.com/j2ee/ja/jdbc/download.html

Apache Tomcat 3.3.1→Support for Java Servlets2.2→Support for JSP Pages1.1
Apache Tomcat 4.0.3→Support for Java Servlets2.3→Support for JSP Pages1.2
http://java.sun.com/products/servlet/industry.html

[大澤文孝,ZDNet/JAPAN] http://www.zdnet.co.jp/developer/java/tomcat/01/index.html