JSPの特長を整理する
スティルハウス
吉川和巳
2005/9/23
Javaを途中までかじったが挫折した。やはりJavaプログラマにスキルチェンジしたい!という読者のために、Tomcatの最新バージョンを使いながらJSPを基礎から解説していく。(編集局) |
|
|
JSPとは? |
現在のインターネットの主役は、掲示板やブログ、オンライン・ショッピング、ネット・オークション、ニュースサイトなど、時々刻々と変化する情報やさまざまなサービスを提供するWebサイトです。これらは、あたかもPC上で動作するアプリケーションのように豊富な機能を実現できることから、一般に「Web アプリケーション」と呼ばれます。
当然のことながら、固定的なHTMLページをサイト管理者が手作業で書くような方法では、Webアプリケーションは実現できません。そこで通常は、ユーザーがWebブラウザに入力したデータやデータベースに保存された情報を基に、WebサーバがリアルタイムにHTMLページを組み立て、Webブラウザに送り返すという仕組みを実装します。
JSP (JavaServer Pages)は、こうした「コンテンツの動的な生成」を実現するテクノロジの1つです。1998年にサン・マイクロシステムズによって最初のJSP仕様が発表された後、JavaによるWebアプリケーション開発になくてはならない基盤技術として世界中で普及しつつあります。2003年11月には最新版の JSP 2.0が公開され、いまでは仕様としても十分に成熟しています。
JSP では、通常のHTMLページの代わりに、「.jsp」という拡張子を持つ「JSPページ」を記述することで、Webコンテンツを動的に生成できます。以下の画面は、1から10までの数値を並べたWebページをリアルタイムに作成する、ごく簡単なWebアプリケーションの例です。
サンプルのJSPページの表示例 |
|
このWebアプリケーションは、以下のJSPページによって実装されています。
<%@ page contentType="text/html; charset=Windows-31J" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html> <head> <title>JSPサンプル</title> </head> <body>
<c:forEach var="item" begin="1" end="10"> ${item} </c:forEach>
</body> </html>
|
ここで、赤色の部分はJSP固有のタグです。それ以外の部分では、通常のHTMLタグを記述します。例えば上記の例では、「c:forEach」というループ用のJSPタグで1から10までの数値を生成し、それをHTMLのbodyタグの間に挿入することで、Webブラウザに表示しています。つまり JSPページは、「動的なコンテンツを挿入したい部分にJSPタグを書く」という点を除けば、通常のHTMLページと同じように記述できます。またJSP ページはテキストファイルであり、コンパイル作業も不要なため、メモ帳などのエディタで簡単に修正できるのが特徴です。
|
|
JSPとPHPを比較する |
Webコンテンツを動的に生成する手段として著名なものにPHPがあります。では、PHPとJSPにはどのような違いがあるのでしょうか。以下は、それぞれを簡単に比較した表です。
サーバサイド・スクリプト技術の比較
スクリプト |
JSP |
PHP |
使用言語 |
Java |
PHP |
開発ベンダ |
サン |
Zend |
利用OS |
Windows/Linux/UNIX |
主にLinux |
Webサーバ |
主にApache+JSP対応コンテナ |
主にApache |
パフォーマンス |
◎ |
△ |
開発環境 |
○ |
○ |
習得の容易さ、 開発者の多さ
|
△ |
◎ |
ホスティング環境 の多さ |
△ |
◎ |
保守性、 大規模対応
|
◎ |
△ |
ポータビリティ |
◎ |
○ |
PHP は、オープンソース・コミュニティから生まれた技術であり、主にLinuxサーバ上で利用されています。Javaなどに比べて学習の容易なスクリプト言語を利用するので、初心者でもすぐに習得できるのが特徴です。また、データセンター事業者が提供する共用ホスティング(共用サーバの貸し出し)サービスのほとんどがPHPに対応しています。こうした理由から、PHPは小規模なWebアプリケーション開発で最もポピュラーなサーバサイド・スクリプト技術として普及しています。ただし敷居が低い分だけ、ある程度の規模を超えるとパフォーマンスや保守性、開発生産性を維持するのが難しくなります。
JSP は、前述のとおりサンが開発したサーバサイド・スクリプト技術であり、LinuxやWindows、UNIXなどJavaが動作する大半のプラットフォームで利用できます。JSPはJava言語の知識を前提とするため、PHPに比べれば開発者の数は少なく、プログラマ単価も高めです。またデータセンターでの運用には専用Linuxサーバなどが必要になります。こうしたことから、小規模なWebアプリケーション開発ではPHPほどポピュラーではありません。しかしJSPは、Java言語の特徴であるポータビリティやパフォーマンスの高さ、オブジェクト指向による柔軟性を生かせるため、スケーラブルで信頼性に優れたWebアプリケーションを構築できます。こうした理由から、中~大規模のWebアプリケーションや、高度な信頼性や可用性、機能性、保守性が要求されるECサイトや企業の基幹業務システムなどでJSPが広く利用されています。
以上、今回はサーバサイド・スクリプト技術であるJSPの概要を紹介し、その位置付けを説明しました。次回は、業界標準のWebコンテナ「Tomcat」を利用してJSP開発環境を構築する手順を解説します。
訂正のお知らせ 本記事において、当初JSPとPHP、ASP.NETとを比較する内容がございましたが、JSP/PHPとASP.NETを横並びで比較すること自体が不適切であり、JavaとASP.NETの優位性についての議論は本記事の趣旨ではないため、ASP.NETに関する記述は削除させていただきました。 内容について正確を期せなかった点、読者の皆様にお詫び申し上げます。 |