JSPについて

皆さんどうも、オーナー隆です。
今回は、JSPについて解説していきます。
Javaのサーバーサイドプログラミングにおいて、避けては通れないJSPですが、HTMLのコードとJavaのコードが混在しており最初はややこしく感じるかもしれません。
なので今回は、サンプルコードを紐解きながら基礎から学んでいきましょう。

JSPとは

皆さんは恐らくJSPを学習する前にサーブレットというものを学習したと思います。
サーブレットでは、ブラウザからのリクエストに対して、処理の結果をサーブレット上でplintln()メソッドを使って出力していました。
しかし、簡易的なWEBページのような数行の出力ならまだしも、実際私たちのよく見るようなWEBページは数百行に渡って文章や図が書かれていることが多いです。そのようなページの出力をサーブレットで行うとなると、plintln()メソッドの羅列ができてしまい非常に冗長なコードになってしまいます。
この問題を解決するのがJSPです。JSPは画面出力用のファイルで、HTMLのコードが中心となり、そのなかにJavaのコードが埋め込まれています。
言葉だけでは分かりにくいので実際のJSPファイルのコードを見てみましょう。

コード1 JSPファイルの

1 <%
2 String name = オーナー隆;
3 int age = 23;
4 %>
5 <!DOCTYPE html>
6 <html>
7 <head>
8 <meta charset=”UTF-8″>
9 <title>JSPのサンプル</title>
10 </head>
11 <body>
12 私の名前は<%=name%>、年齢は<%=age%>歳です。
13 </body>
14 </html>

1行目から見たことの無いタグが出てきましたね、太字で書かれたところはJavaのコードで、他は全てHTMLで記述されています。JSPファイルはこのようにHTMLの中にJavaのコードを埋め込んで作成します。では<%という謎のタグは何なのかを次で説明します。

JSPの構成要素

JSPファイルを構成する要素にはそれぞれ名前がついています。下に一覧を書いておきます。

1.テンプレート

HTMLで書かれた部分(<html>や<body>タグで書かれた部分)のことを言います。

2.スクリプト

Javaのコードで書かれた部分のことを言います。
スクリプトにもスクリプトレット、スクリプト式、スクリプト宣言という3つの要素があります。
順番に解説していきます。

2-1.スクリプトレット

スクリプトレットとはサンプルコードで見た<%で始まる部分のことで、HTMLのコードにJavaのコードを埋め込むためのものです。

スクリプトレットの書き方:<% Javaのコード %>

スクリプトレットには、2つ覚えておいてほしい性質があります。
性質1
1つのJSPファイル内の任意の場所に複数記述することができ、スクリプトレットレット内で宣言した変数やインスタンスは、宣言した箇所以降に記述する同じJSPファイルのスクリプトレットで使用できます。フィールド変数の宣言と似たようなものですね。
性質2
for文やif文などを複数のスクリプトレットに分けて記述することができます。

では、サンプルコードを見てみましょう。

コード2 スクリプトレットの例

1 <% int x = 5; int y = 10;%>
2 <% int z = x + y; %>
3 <% if (z = 15){ %>
4 <p>こんばんは<p>
5 <% } %>

このJSPファイルを実行すると「こんばんは」が出力されます。コードについて説明していきます。
2行目では性質1によって、1行目のスクリプトレットで宣言した変数x、yを別のスクリプトレットで使用することができます。よってzには15が代入されます。
3行目のif文では性質1により別のスクリプトレットで宣言した変数zを条件式に使用することができています。
そして条件式が真(z=15である)の場合、性質2によって、3行目のif文と、5行目で挟まれた4行目が出力されるということになります。

2-2.スクリプト式

スクリプト式とは、式タグとも呼ばれ、変数やメソッドの戻り値などを出力できます。書き方は簡単で、スクリプトレットの<%に続けて=を加えるだけです。

スクリプト式の書き方:<%= Javaのコード(変数やメソッド) %>

ではサンプルコードを見て使い方を理解しましょう。

コード3 スクリプト式の例
<% int x = 3; int y = 5;>
<%= x + y>
出力結果:8

注意してほしい点はJavaのコードのように、最後に;をつけてはいけないという点です。

2-3.スクリプト宣言

スクリプト宣言とは、変数やメソッドを宣言するためのものです。

スクリプト宣言の書き方:<%! Javaのコード %>

ここで皆さんは「変数やメソッドの宣言ってさっきやったスクリプトレットでもできたよね?」と思うかもしれません。実際その通りで、スクリプトレットでもできます。では何のためのこのスクリプト宣言があるのでしょうか。
実はスクリプト宣言で宣言したものはリクエストをまたげます。
どういうことかというと、例えばスクリプトレット内で整数型の変数xを宣言し、初期値に0を代入したとします。そして1回目のリクエストでxに1を足しました、このときxの値は1です。
そして2回目のリクエストでもう一度ⅹに1を足しました、しかしこの時のxは1となってしまいます。
一回目のリクエストにレスポンスを返した後、xは初期化されてしまっているのです。
このようなときにスクリプト宣言を使うことでリクエストをまたいだとしても変数xのあたいを保持しておくことができるのです。

3.JSPコメント

JSPコメントを使うと、JSPファイルにコメントを記述できます。
プログラムを分かりやすくするためにも、ぜひコメントの書き方を覚えておきましょう。

JSPコメントの書き方:<%– コメント –%>

ただし、スクリプトレット内にJavaとしてのコメントを記述する場合は、Javaの文法に従ったコメント(// コメント)を記述しましょう

まとめ

今回はJSPについて解説してきました。JavaでWEBアプリを開発するときに必須の知識ですので是非復習しておいてください。
さらに次回はJSP第2弾として、標準アクションタグ・EL式・JSTLについて学習していきます。
今回より難しい内容となっていますが、使いこなせれば非常に便利なものなので頑張ってついてきてください。
ご精読ありがとうございました。

コメント

タイトルとURLをコピーしました