いよいよ、JSP (Java Server Pages) の説明です。JSP で「Hello World」を表示する例を元に、基本的なことを説明していきます。
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なのです。
タグライブラリには、標準的なJSTL(JSP Standard Tag Library)と、自由に拡張できるカスタムタグがあります。 標準的なJSTLには次のようなタグがあります。
| No | 項目 | タグ | 備考 |
| 1 | ディレクティブ | <%@ 〜 %> | コンパイル時に処理 |
| 2 | スクリプト | 宣言 | <%! 〜 %> | 実行時に処理 |
| 3 | スクリプトレット | <% 〜 %> |
| 4 | 式 | <%= 〜 %> |
| 5 | アクション | <jsp: アクション名 属性=値 /> |
※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 | 項目 | JSP | ASP |
| 1 | 提供元 | 複数 | Microsoft社 |
| 2 | OS稼動 | UNIX/Linux、Windows | Windows |
| 3 | Webサーバー | Apache、IISなど | IIS |
| 4 | コンポーネント | JavaBeans、EJB | ActiveX |
c) JSP エンジンには、次の種類があり(一部)、Servlet エンジンを兼ねているケースが多いです。