簡単なJSPを作成してみよう
6.1 簡単なJSPを作成してみよう
前章までは、Webアプリケーションを構成するファイルの1つであるサーブレットについて学習しました。本章では、もう1つのファイルであるJSPの基本的な構造や動きについて、簡単なJSPプログラムを作成しながら学習していきます。
6.1.1 Hello JSP!プログラムを作ってみよう
これから、下の実行結果のように、Webブラウザに「Hello JSP!」と表示する簡単なJSPプログラムを作成します。JSPはサーブレットと違い、@WebServletアノテーションの登録は必要ありません。
実行結果
以下の手順でHello JSP!プログラムを作成していきます。各Stepの指示に従って進めてください。
Step1:JSPファイルの準備
Step2:JSPファイルの記述
Step3:プログラムの実行
このHello JSP!プログラムでは以下のような構成でプログラムを作成します。
アプリケーション構成
Step1:JSPファイルの準備
JSPファイルの作成は、「新規ファイル作成ウィザード」を利用します。JSPファイルはサーブレットとは異なり、Webブラウザから直接アクセスします。そのため、JSPファイルは、「src/main/java」フォルダの中ではなく「src/main/webapp」階層に作成した「view」フォルダ内に章のフォルダを作成し、その中に配置します。
① 新規ファイル作成ウィザードの起動
「view」フォルダを右クリック > 新規 > ファイルを選択すると作成ウィザードが起動します。
図 6.1.1: 新規ファイル作成画面の起動
② 新規ファイルの作成
表示された新規フォルダ作成画面の「親フォルダの入力または選択」に「web_basic/src/main/webapp/view/ch06」、ファイル名に「hello.jsp」と入力し、「完了」ボタンを押下します。パッケージ・エクスプローラの構成が下図のようになれば作成は完了です。
図 6.1.2: JSPファイルの作成
Step2:Javaファイルにプログラムの記述
Step1で作成した「hello.jsp」ファイルに以下のソースコードを記述します。
➢ hello.jsp<html> <head> <title>Hello JSP</title> </head> <body> <% String msg = "Hello JSP!"; out.print(msg); %> </body> </html>
図 6.1.3: hello.jspプログラムの記述
Step3:プログラムの実行
「実行」ボタンからTomcatを起動し、Webブラウザに以下のURLにアクセスした結果が表示されます。
http://localhost:8080/web_basic/view/ch06/hello.jsp
図 6.1.4: hello.jspプログラムの実行画面
サーブレットを実行するときは、@WebServletアノテーションにマッピングされたURLを指定していました。しかし、JSPの場合は、@WebServletアノテーションに登録を行わないため、HTMLファイルと同じように、フォルダ名をすべて含んだURLを指定してプログラムを実行します。
6.1.2 JSPファイルの内容
「hello.jsp」ファイルの内容は以下のようになります。ソースコードを見るとわかるように、ほとんどの記述がHTMLでできています。1.3.3項で触れましたが、JSPは「サーバサイドスクリプト言語」と呼ばれる言語で、HTMLの中にJavaのソースコードを埋め込みます。
この埋め込んだJavaのソースコードが、6行目から9行目の記述です。
6行目と9行目に記述した「<% ~ %>」は「スクリプトレット」と呼ばれるもので、この中に記述された部分がJavaプログラムとして扱われる部分です。
7行目と8行目はJavaプログラムです。7行目で定義された文字列を、8行目でHTMLに出力しています。
ここで、注意深い方は気がついたかもしれませんが、8行目で使用している変数outはどこにも宣言がありません。この変数outは「暗黙オブジェクト」と呼ばれるもので、JSPで用意された、宣言せずに使える変数の1つです。
暗黙オブジェクトには以下のようなものがあります。
表 6.1.1
今の時点では全てを覚える必要はありません。ここでは、宣言せずに使える便利なオブジェクトがあるということだけを理解しておきましょう。
6.1.3 JSPファイルが実行されるまでの流れ
JSPファイルは、HTMLファイルと同じように、フォルダ名などをすべて含んだURLを指定して実行します。そのため、JSPファイルもHTMLと同じように、ファイルが直接実行されていると感じるかもしれません。しかし、JSPファイルはサーブレットとして実行されます。
JSPファイルにはJavaプログラムが記述されているため、実行するにはコンパイルが必要です。以下の図のような流れでコンパイルが行われ、サーブレットとして実行されます。
図 6.1.5: JSPファイルのコンパイル
この一連のコンパイルは、Webブラウザからのリクエストがあったときに1回だけ行われます。そのため、1回目のアクセスには若干の時間がかかる場合がありますが、2回目以降のアクセスではすぐに結果を表示することができます。また、JSPファイルを変更した場合は、Webブラウザからのリクエストがあったときに、再度変換とコンパイルの処理が行われます。