1.JSP とは

いよいよ、JSP (Java Server Pages) の説明です。JSP で「Hello World」を表示する例を元に、基本的なことを説明していきます。

(1) JSP とは

 JSP とは、HTML ファイルの内部に JSPタグ(<% ... %>) などで記述し(Java で記述など)、Web ブラウザからのリクエストのたびに Java をサーバ側で実行し、HTML 中の Java の部分をその処理結果で置き換えて Web ブラウザに送り出す、というものです。

 ASP(Active Server Pages)がスクリプト(Javascript,VBscript 等)版としたら、この JSP は Java 版です。


(2) helloworld.jsp の作成と実行

 「 helloworld.jsp 」を作成し、... \webapps\examples\jsp の下に置きます。

<html>
<head>
<title>Hello World JSP</title>
</head>
<body>
<%
  String s= "Hello World";
  out.println(s);
%>
</body>
</html>


 ブラウザを開いて作成したサブレットのプログラムを、次のようにURLで指定してください。 画面に「Hello World」が表示すればOKです。

  http://127.0.0.1:8080/examples/jsp/helloworld.jsp

 JSP ファイルはコンパイルはしなくてもOKです。一番最初にブラウザからそのJSPファイルにリクエストがあった時にTomcatがJava のソースコードに変換して(servletになる)、クラスファイルにコンパイルしてくれるからOKなのです。


(3) JSP タグ


 タグライブラリには、標準的なJSTL(JSP Standard Tag Library)と、自由に拡張できるカスタムタグがあります。 標準的なJSTLには次のようなタグがあります。

No項目タグ備考
 1ディレクティブ <%@ 〜 %>コンパイル時に処理
 2スクリプト宣言<%! 〜 %>実行時に処理
 3スクリプトレット<% 〜 %>
 4<%= 〜 %>
 5アクション<jsp: アクション名 属性=値 />

JSPタグの詳細及びカスタムタグについては、次の章を参照してください。


(4) JSP エンジン


 a) JSP エンジンは、一般的に次のような機能を持っています。JSPタグの詳細は次の章から説明していきます。
1. JSPタグを解釈してServletプログラムに変換する。
2. HTMLタグを解釈してServletのPrint文に変換する。
3. 変換されたServletをコンパイルする。
4. コンパイルされたServletのクラスファイルをServletエンジンに引き渡す。
  ( 先ほどの「 helloworld.jsp 」が実際に変換された servlet のソースです )

5. コンテナによるクラスファイルのロード(最初1回だけ)
6. サーブレットインスタンスの生成
7. コンテナによるjspInit()メソッドの呼び出し(最初1回だけ)
8. コンテナによる_jspService()メソッドの呼び出し
9. コンテナによるjspDestroy()メソッドの呼び出し(コンテナ停止時1回だけ)


※jspInit の利用例は、JDBC 編の「5.JDBC API ( JSP )」を参照してください。
 最初1回だけDBに接続し、コンテナ停止時に切断する仕組みができます。



 b) JSPとASPには次のような違いがあります。

No項目JSPASP
 1提供元複数Microsoft社
 2OS稼動UNIX/Linux、WindowsWindows
 3WebサーバーApache、IISなどIIS
 4コンポーネントJavaBeans、EJBActiveX


 c) JSP エンジンには、次の種類があり(一部)、Servlet エンジンを兼ねているケースが多いです。

NoJSPエンジン提供元商用/フリー
 1Tomcat
Tomcat(日本語)
Apache-Jakartaプロジェクトフリー
 2JRunMacromedia一部フリー
 3WeblogicBEA商用
 4WebSphereIBM商用
 5iPlanetSun-AOL商用
 6WebBaseNTT Soft商用
 6ResinCaucho Technology商用


次の章(JSP のディレクティブ)