ページの先頭行へ戻る
Interstage Studio V12.2.0 ユーザーズガイド Java EE 6編
FUJITSU Software

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 Java EE 5からの変更点

Java EE 6に含まれるWebアプリケーションの仕様はServlet 3.0です。

Servlet 3.0では主に以下の機能が追加されています。

アノテーションを使ったサーブレットやフィルタ等の設定記述

Servlet 3.0で、アノテーションを使って、サーブレットやサーブレットフィルタ等の設定を記述する事が可能になりました。これにより、web.xmlの設定をアノテーションで定義した内容で上書きしたり、web.xmlを利用しない事も可能です。以下に主なサーブレット設定用のアノテーションを示します。

サーブレット、サーブレットフィルタ、リスナのインタフェースを実装したクラスにこれらのアノテーションを設定することで、サーブレット設定を定義できます。

ポイント

Servlet 3.0の詳細情報については、以下の規約を参照してください。

  • JSR-315: Java(TM) Servlet 3.0 Specification

JSP 2.2の詳細情報については、以下の規約を参照してください。

  • JSR-245: JavaServer(TM) Pages 2.2

JSF 2.0の詳細情報については、以下の規約を参照してください。

  • JSR-314: JavaServer Faces 2.0