Javaを途中までかじったが挫折した。やはりJavaプログラマにスキルチェンジしたい!という読者のために、Tomcatの最新バージョンを使いながらJSPを基礎から解説していく。(編集局)
前回説明したとおり、JSPでは、以下の3種類のJSPタグを記述できます。
ディレクティブは、JSPページにまつわるさまざまな指示(directive)をWebコンテナへ伝えるJSPタグです。前回は、「pageディレクティブ」を用いてJSPページの文字コードをWebコンテナに指示する例を紹介しました。引き続き今回は、JSPにおけるスクリプトの概要や位置付けについて説明します。
前回、以下のようなサンプルコードを取り上げました。
<%@ page contentType="text/html; charset=Windows-31J" %> <html> <head> <title>JSP Sample</title> </head> <body> こんにちは、今の日時は <%= new java.util.Date() %> です。 </body> </html>
このコードでは、以下の部分において、JSPのスクリプトと呼ばれる文法を用いています。
<%= new java.util.Date() %>
ご覧のとおり、スクリプトでは、Javaコードを直接記述できます。このJavaコードによってコンテンツを動的に生成し、HTMLページに挿入する仕組みです。上述のコード例では、現在の日時を表すDataオブジェクトを生成し、Webブラウザに文字列として出力しています。
JSPでは、こうしたスクリプトとして、以下のようなタグが利用できます。
タグと使用例 | 名称 | 機能 |
---|---|---|
<% Date d = new Date(); %> | スクリプトレット | Javaコードの実行 |
<%= 1 + 2 %> | 式 | Java式の実行とWebブラウザへの出力 |
<%! Date d = null; %> | 宣言 | Javaフィールドまたはメソッドの宣言 |
<%-- コメント --%> | コメント | コメントの記述 |
表 JSPで利用できるスクリプトのタグ |
これらの中でも、「<% ... %>」という記法によりJavaコードを記述する「スクリプトレット」は、初期のJSP開発では最も広く用いられたタグです。例えばデータベース検索機能やショッピング・カート機能などのビジネス・ロジック(業務処理)をスクリプトレットで記述する方法がよく使用されていました。
こうした「Webページに埋め込まれたスクリプトでビジネス・ロジックを記述する」という開発スタイルは、PHPやASPといったほかのサーバサイド・スクリプトとも共通するものです。しかしこの方法は、JSP開発の現場に混乱を招く結果となりました。なぜならHTMLコンテンツとJavaコードが1つのJSPページに混在するために、以下のようなデメリットを生じるからです。
そのため現在のJSP開発では、これらのスクリプトはあまり利用されていません。その代わりとして、Webアプリケーション全体の機能を以下のような役割分担で実装する方法、いわゆる「MVC(Model View Controller)モデル」が広く用いられています(MVCモデルについて詳しくはJava Solution FAQを参照)。
このように、MVCモデルにおけるJSPページの役割は「ビジネス・ロジックの実行結果のHTML表示」にあります。こうしたMVCモデルの普及とともに、WebアプリケーションをJSP単体で実装する例は少なくなり、MVCモデルの枠組みをあらかじめ実装した「MVCフレームワーク」の導入が一般的となりました。MVCフレームワークの代表例としては、以下のようなものがあります。
これらMVCフレームワークの機能や特徴についての説明はほかに譲るとして、ここでは「スクリプトはなるべく使用しない」「Webアプリケーション開発ではMVCフレームワークの導入が欠かせない」という点だけ押さえておいてください。これらの事情から、本連載では、スクリプトについての詳しい説明は省略したいと思います。
ここまでの説明によって、JSPページは実のところ「処理結果のHTML表示」のための手段であることが理解できたと思います。では具体的に、スクリプトを使わずに、どのような方法で処理結果をHTML表示するのでしょうか。次回は、その答えである「アクション」について説明します。
Copyright © ITmedia, Inc. All Rights Reserved.