ページの先頭行へ戻る
Interstage Studio Java EEワークベンチユーザーズガイド

2.1.1 Webアプリケーションとは

WebアプリケーションはWebブラウザをクライアントとして利用するアプリケーションです。WebサーバによるHTTPを利用したWebの配信機能に、サーブレットコンテナによる動的なコンテンツの利用技術を追加した仕組みがベースとなっています。
ユーザインタフェースとしてのクライアント層や、EJBなどで実装されるビジネスロジックへの橋渡しを行うプレゼンテーション層として利用します。

Webアプリケーションの動作イメージとしては、以下のようになります。

  1. WebアプリケーションのURLにアクセスする

  2. Webブラウザ上にWebページが表示される

  3. HTMLのフォームを使用してデータを入力して、データ(HTTP要求)を送信する

  4. サーバ側でデータを処理し、クライアントに応答ページ(HTTP応答)を返信する

  5. 2.に戻り、処理が繰り返される

Webアプリケーションを作成するうえで利用される技術を簡単に説明します。

HTTP

HTTP(HyperText Transfer Protocol)は、Webサーバとクライアント(ブラウザなど)間で送受信されるプロトコルです。クライアントからWebサーバへリクエスト(要求)を送信すると、Webサーバはリクエストに応じたレスポンス(応答)を返します。
良く使われるリクエストとして、ページの取得を要求するGETメソッドと、フォームに入力したデータをサーバに転送するためのPOSTメソッドがあります。

HTML

文書の論理構造を記述するために考案された、タグ付けによる文書記述の規約です。インターネットによる情報公開で用いられ、事実上、Webブラウザのための記述言語となり、Webブラウザの進歩とともに規約が拡張されています。

カスケードスタイルシート(CSS)

HTMLのスタイル情報を持つファイルです。このファイルによって、ページのブラウザ上でのレイアウト、デザインを細かく指定することができます。HTML規約の拡張に伴い、HTML内に見た目の情報が記述できるようになりましたが、本来は論理構造を記述することが目的であったことや、サイト内の見た目を統一するのに複数のHTMLへの修正が必要という問題があり、それを改善するため、見た目の情報をスタイルシートとして分離するCSSが考案されました。

JavaScript

HTML文書に、計算した結果を表示させるなどの動作をつけるために作成されたスクリプト言語です。現在ではほとんどすべてのブラウザで動作するようになりました。APIの実装などがブラウザによって異なるため、実装の際には注意が必要です。

サーブレット

Webサーバ上で動的にHTMLドキュメントを生成する技術であり、Webブラウザから入力したデータをサーバ上で処理を行うことができます。また、それまでのWebサーバ上の技術として主流であったCGI(Common Gateway Interface)の問題点である、多重度、セション管理などの問題を解決する技術を提供しています。

サーブレットクラスを作成するには、Servletインタフェースを実装する必要があり、要求オブジェクトからのパラメタの取り出しや応答オブジェクトの作成をメソッドとして実装します。応答オブジェクトの作成では、通常はHTMLドキュメントの出力を行います。しかし、JSPが考案された現在では、動的HTMLドキュメントの作成はJSPで行うのが一般的であり、サーブレットでは、EJBサービスやJSPへの処理の振り分けなどを行います。

また、サーブレットは初めての要求時に初期化され、インスタンスはそれ以降の要求で共有されます。そのため、サーブレットはスレッドセーフとして作成する必要があります。

JSPJavaServer Pages

動的なHTMLコンテンツを作る場合には、サーブレット技術を利用しますが、サーブレットのプログラム内に、サーバで処理するロジックとHTMLコンテンツが混在し、記述性が良くないという問題がありました。そこで、動的コンテンツ(データの埋め込みなど)を出力するために、HTMLファイルにJava記述を可能にしたものがJSPです。

JSPは、運用時にサーバ上でサーブレットクラスに変換されてから実行されます。そのため、実行の基本的な技術はサーブレットと同じになります。

JSTL

JSTL(JSP Standard Tag Library)は、Java Community Process(JCP)によってJSR-052として標準化されたJSPのタグライブラリです。よく利用される共通的な機能をタグライブラリとしてまとめて提供しています。

JSF(JavaServer Faces)

JSF(JavaServer Faces)とは、JSR-127としてJava Community Process (JCP)で策定された仕様で、Webアプリケーションのユーザインタフェースを作成するためのアプリケーションフレームワークです。

2.1.1.1 J2EE1.4からの変更点

Java EEに含まれるWebアプリケーションの仕様はServlet 2.5です。また、JSPの仕様はJSP 2.1です。

Servlet 2.5では主に以下の変更があります。

また、JSP 2.1では、主に以下の機能が追加されています。

アノテーション

Servlet 2.5で、アノテーションが利用可能になり、Dependency Injectionが可能になりました。これにより、JNDIのlookup処理をソースに記述する必要がなくなり、参照しているリソースの宣言の記述などもweb.xmlに不要になります。

以下に主なアノテーションを示します。

web.xmlの変更

web.xmlの記述方法が改善されました。複数のパターンや要素を指定する際の記述方法が変更され、まとめて記述することができるようになりました。この結果、記述量が減り、可読性も良くなりました。

Unified ELが利用可能

JSP2.0で導入されたEL(Expression Language、式言語)が、JSFの式言語と統一されました。Unified ELでは、${}の形式の表記と#{}の形式の表記の両方が利用可能です。