JSPプログラムの実行環境を整える

JSPのプログラムを実行するのはとても簡単だ。作成したWebアプリケーション用のディレクトリ下に、拡張子.jspのファイルを置くだけでよい。ここでは、リスト1に示す「hello.jsp」ファイルを、先に作った「/var/tomcat4/webapps/sample/」ディレクトリに置いてみた。
TIPS
JSPプログラムは、/var/tomcat4/webapps/sampleディレクトリ直下に配置せず、/var/tomcat4/webapps/sampleディレクトリ下にサブディレクトリを作って置いてもよい。その場合、「http:/[/サーバ名またはIPアドレス]:8080/sample/[サブディレクトリ名]/hello.jsp」のURLでアクセスできる。
リスト1■hello.jspファイル

<HTML>
<BODY>
<%
// ここはJavaによるプログラム
int i;
for (i = 1; i <= 6; i++)
{
%>
<H<%=i%>>Hello JSP</H>
<%=i%>>
<%
}
%>
</BODY>
</HTML>

ここまでの手順により、すでにserver.xmlファイルを変更してsampleというパス名でアクセスができるようになっている。このため、リスト1のプログラムを実行する場合、クライアントから次のURLでアクセスが可能だ。

http://[サーバ名またはIPアドレス]:8080/sample/hello.jsp

 実際にWebブラウザから参照してみると、リスト1のプログラムが実行されて結果として、画像3のように表示されるはずだ。

画像3■リスト1の実行結果

JSPでは、リスト1にあるように、「<%」と「%>」で囲った個所がJavaプログラムとして認識実行される。そして「<%= 変数名%>」の表記を利用すると、その変数内容を出力することが可能だ。

リスト1ではforループを使い、変数「i」の値を1から6まで変化させながら「Hello JSP」と記述している例だ。このため、「<H1>Hello JSP</H1>、<H2>Hello JSP</H2>、…、<H6>Hello JSP</H6>」のように表示出力され、実行結果は画像3のようになる。

TIPS
リスト1では、「Hello JSP」という英文字を表示しているが、これを「こんにちはJSP」などのように日本語を含む文字列に変更しても正しく日本語表示されない(後述のリスト2も同様)。これはエンコードタイプが異なるためである。日本語を含む文字列の扱いについては、次回に説明する。

ところで第1回目のfig.2の解説では、JSPは自動的にサーブレットに変換されて実行されると説明した。リスト1はJSPのプログラムであることから直接実行されるのではなく、内部では、サーブレットに変換されてから実行されていることに注目したい。実際にサーブレットに変換されたファイルは、「/var/tomcat4/work/Standalone/localhost/sample/」ディレクトリに「hello_jsp.class」と「hello_jsp.java」ファイルとして置かれる(どのディレクトリに格納されるのかは、「web.xml」ファイルの設定により異なる)。

拡張子が.javaであるファイルは、JSPのファイルがサーブレットに変換された後のJavaソースファイルである。興味がある人は、JSPがどのようにサーブレットに変換されるのかを見てみるとよいだろう。