【JavaWebアプリ入門 #10】JSP基本

 

みのる
こんにちは。笑顔で感謝!✨ みのるコーチです。
今回も、ご覧いただき、ありがとうございます。

今回は…

JavaWebアプリ入門 #10
JSPの基本

というテーマでお送りします。

彩香
だんだん、Webアプリが 分かってきました。
JSPも シッカリ学んでいきます。

今回も、宜しくお願いします。

剛留
また 新たな響きですね、JSP。
今回も、全集中で頑張ります。

【1】 JSPの表現

① リクエスト・レスポンスの流れ

今まで、こんな事を学んできました。

Webアプリは、Webブラウザからの
リクエストを受け取ると…

リクエストパラメータを取得して…

アプリ固有の処理をして…

レスポンスを生成します。

これらを すべて、サーブレットで
作ることを考えてきました…。

② サーブレットの中でのレスポンス生成

この流れの中で、サーブレット中での
レスポンス生成の部分を見てみましょう。

PrintWriter型のオブジェクト(ここでは out という変数名)の
println()メソッドを使って、HTMLを書き出していました。

彩香
これ、大変なんですよね…。

PrintWriter型オブジェクトの println()メソッドで
HTMLを書くので、なんだか面倒だな~って…。

剛留
それと、エスケープシーケンス を使わなきゃ…、
のところもあって、手間が、かかっちゃいます。

そうですね、Javaのプログラムの中で HTML を
書いている感じですものね…。

ここで書きたい大部分は、HTML ですから
この HTML を主体にコーディングしていきたいですよね。

③ JSP

こうした背景の中で
考えられた テクノロジーが …

JSP

です。

先ほど、サーブレットで表現していたコードを
JSPで表現すると、このようになります。

これを見て、どう感じますか?

彩香
あれ? ほとんど、HTML ですね。
部分的に 見慣れない記述がありますが…。
剛留
ほんとだ。ほとんど HTML に見えます。

これだったら、大枠は HTML を
コーディングする感覚で書けそうですよね。

そうなんです。JSPの表現では。
殆どの部分を、HTMLのタグを使って表せます。

そして、部分的にJSP独自のタグを使って
Javaの機能を使うことが、できるんです。

JSPを習得すると、レスポンス生成の部分は
ラクラク 書けそうですよね。

今回は、この JSPの基本を 見ていきましょう。

【2】 JSP実行の流れ

① Webアプリのフォルダ構成

Webアプリの、フォルダ構成の復習を
しておきましょう。

アプリ毎に コンテキストルートがあって…

eclipse の中では src/main/webapp が
コンテキストルートに相当することと…

eclipse上の Javaソースフォルダは
src/main/java であることを お話しました。

ここだけ、まず押さえておきましょうと
お話しましたね…。

② JSPの配置

このフォルダ構成の中で JSP を
公開する場合には、コンテキストルートに配置します…。

そして、公開せず 内部的に使うだけの場合には
WEB-INF の下に 配置します。

今回は、まず コンテキストルートに
配置するパターンで 考えていきましょう。

③ JSP実行の流れ

私たち Webアプリ開発者は JSPファイルを
コンテキストルートに配置します。

JSPファイルの 拡張子は「.jsp」です。

そして このJSPファイルは、内部的には
Java(サーブレット)に変換されてから 実行される

のです。

JSP実行の流れは、このようになります。

❶ 初回リクエスト時

該当 .jsp ファイルの初回のリクエスト時には…

Webコンテナは、JSPファイルを
Javaソースコード(サーブレット)に変換します。

その後に、コンパイルを行って
class ファイルを作成します。

更に、クラスをインスタンス化します。

この手順を踏んだ後に、サーブレットの
実行を行うのです。

これに対して、サーブレットインスタンスが
動作して レスポンスを返します。

初回の JSP リクエスト時には
このような実行の流れが、あるのです。

❷ 2回目移行のリクエスト時

そして、同じ JSPの実行 でも
2回目以降のリクエストは 実行の流れが変わります。

2回目以降のリクエスト時には…

JSP ファイルに対する
サーブレットインスタンスが存在しています。

ですので、Webコンテナは 既に存在する
このサーブレットを実行する事となります。

これに対応して、サーブレットインスタンスが
動作して レスポンスを返します。

この部分は、内部的にこうなっている事を
大枠で イメージしておきましょう。

ただし、このあたりは
あまり 強く意識する必要は ありません…。

開発者は、JSPファイルを作成して
適切なフォルダに 配置しておけば大丈夫です。

そうすると、あとは、Webコンテナが
効率を良く「よろしく」やってくれるからです。

剛留
をっ。JSP は、HTMLのように見えますが
内部的にはサーブレットなんですね。

JSP と サーブレットの関係は
モンゴルマン と ラーメンマン みたいな感じですね。

みのる
えっ、モンゴルマン と ラーメンマン は知らないのですが…。
JSP は 内部的には サーブレット なのは確かです!
彩香
モンゴルマン と ラーメンマン って知らないんですが
どうなんでしょう…。
みのる
はい、それでは、次にいきましょう。

【3】 JSPのタグ

① JSPタグの概要

さきほど、JSP は HTMLの 中に JSP独自のタグを使って
Javaの機能を使う… とお話しました。

ここでは、この JSPのタグを見ていきましょう。

JSPタグは、大きくは…

✅ コメント
✅ スクリプト
✅ ディレクティブ
✅ アクションタグ

に分けられます。

② 本コースで扱う範囲

このうち、このコースでは 基本的で良く使われる
項目に絞ってお伝えしていきます。

今回は…

✅ 「JSPのコメント」
✅ スクリプトの中の「スクリプトレット」と「式」

を見ていきましょう。

そして 次回…

✅ ディレクティブの中の
 「pageディレクティブ」と「includeディレクティブ」

をお伝えします。

③ スクリプトレット

まず、スクリプトレットからです。

<% と %> で囲まれた範囲が
スクリプトレットです。

この中には、Javaのソースコードを
埋め込むことができます。

スクリプトレットは、1つのJSPファイル内で
任意の箇所に 複数 記述することができます。

また、このように for ループや if 文などを
複数のスクリプトレットに分けて書くこともできます。

内部的に繋がっている感じですね。

④ 式

次が「式」です。

式は、<%= と %> で囲まれた部分です。

この中には、Javaの式 を指定すること ができて
…その「値」を 表示することとなります。

式は…

演算式や 変数名 それから メソッド呼び出しを
記述して 戻り値を表示することもできます。

この例では、 変数 i の値が表示されます。

⑤ コメント

3つ目が、コメントです。

コメントは
<%– と –%> で囲まれた部分です。

プログラムが分かりやすくなるように
コメントは必須ですね。

このように、任意の場所に
コメントを書くことができます。

ただし…

スクリプトレットの中で、コメントを書く場合には
Javaの形式でコメントを書きます。

また、JSP には <!– と –> で囲んで記述する
HTMLのコメントも記述することができます。

【まとめ】

【1】 JSPの表現
✅ HTMLの表現に加えて
  JSP独自のタグを使って
  Javaの機能を活用できる。
【2】 JSP実行の流れ
✅ JSPファイルは、最初の実行時に
  Webコンテナ内で、サーブレットに
  変換されてから使われる。
【3】 JSPのタグ

今回は、この3つを見てきました。

✅ スクリプトレット
✅ 式
✅ JSPコメント