JSPとは?

JSP(Java Server Pages)は、HTMLの中にJavaのコードを埋め込められる言語です。
此処ではJSPについて学びます。
サーブレットはHTMLを生成するプログラムですから、HTMLが其の侭書けるJSPは、プログラム開発の効率アップに大きな効果が有ります。

JSPの仕様

JSPは、Javaの様にコンパイルの必要が有りません。
ソースファイルを其の侭サーバに置きます。
JSPが通常の完全なインタプリタと異なる点は、実行時に実行に先立ってサーブレットに変換され、コンパイルされる事です。
其の為、サーブレットへの変換やコンパイルが上手く出来ないと実行出来ません。
従って、通常の完全なインタプリタの様に、取り合えず出来た所迄動かしてみる、と言う訳には往かないのです。
実行する際には、初めて実行した時に変換したりコンパイルしたりする時間が掛かるのですが、1度実行されるとメモリ上にロードされた侭、何度も使われるので、2度目からは高速で動作出来ます。
JSPは、サーブレットと全く同じ事が出来ます。
従って、JSPだけでサーブレットも記述出来ます。
又、JSPは「HTMLを出力」機能に優れているので、サーブレットの中、画面出力の部分だけ担当するプログラミングの経験の浅いデザイナでも、HTMLさえ知っていれば用意に記述出来ます。
其れにより、プログラマとデザイナが同時に作業を進行出来ますし、画面デザインだけが変更された場合でも、JSPだけを差し替えれば済むと言うメリットが有ります。
更に、Javaのコードも記述出来るので、Javaのfor文やif文等のロジックを加えた動的なページを作れます。
サーブレットでは、一般に3つの役割に分け、以下の様に分担します。

JavaBeans・JSP・サーブレットの役割分担

モデル 必要なデータの保持と業務ロジック JavaBeans
ビュー 画面デザイン JSP
コントロール 入力情報を受け取り、モデルとビューをコントロール サーブレット

此の様な分担方法をMVCモデルと言います。

JSPを構成する要素

JSPの記述は、3つの要素に分類出来ます。

@ディレクティブ(Directive)

JSPファイルを実行するJSPコンテナに対する指令です。

例: <% page language = "Java" contentType = "text/html;charser = Shift_JIS" %>

Aスクリプト(Script)

HTMLを動的に生成する為のJavaコードを記述します。

例: <% for(int i = 0;i < 5;i++){ %>

Bアクション(Action)

JavaBeansや他のJSPを呼び出す為の記述をします。

例: <jsp:useBean id = "beanID" scope="page" class = "MyBeans"/>

JSPの暗黙のオブジェクト

JSPでは、宣言をしなくても使って良い変数が幾つか用意されています。

request サーブレットに変換された時、ServletRequestクラスのオブジェクトに
「doGet」や「doPost」の1つ目の仮引数と同じ働き
response サーブレットに変換された時、ServletResponseクラスのオブジェクトに
「doGet」や「doPost」の2つ目の仮引数と同じ働き

戻る