前回まではサーブレットの基本を見てきましたが、今回からはJSPについて見ていきます。
JSPはJava Server Pagesの略語であり、Javaを利用してサーバーサイドで動的にWebページ(動的コンテンツ)を生成し、クライアントに送信する技術のことです。
サーブレットのソースコードの実体はJavaで書かれたテキストファイルであり、アプリケーションとして利用するためにはコンパイルを行ってクラスファイルを作成する必要があります。(Eclipse上で、「実行」-「1 サーバーで実行」をクリックすることでEclipseがそれらの処理を自動的にやってくれていました。)
これに対し、JSPはHTMLファイルの中に、Javaコードを埋め込んでおき、クライアントからの要求に応じて、プログラムを実行し、その処理結果をクライアントへ返します。クライアントへ返す結果は、通常のHTML形式になるため、Webブラウザに特殊な機能を組みこむことなくWebアプリケーションを構築することができます。
似たような技術に、マイクロソフトのIIS上で動作させることができるASP(Active Server Pages)がありますが、ASPに対応しているWebサーバー、APサーバーはIISぐらいしかないのに対し、JSPはTomcatはもちろん、他の様々なWebサーバー、APサーバーが対応しています。
JSPページ
JSPを利用したコンテンツのことをJSPページと言います。JSPページはそのままWebブラウザに送信されるわけではなく、いったんサーバー側でサーブレットにコンパイルされ、その実行結果であるHTMLページがブラウザに送信されます。
JSPページがブラウザに表示されるまでの流れが下図になります。
①HTMLフォームや直接URLにアクセスすることでJSPページが呼び出される。
②Webサーバーは呼び出されたコンテンツがJSPページであると判断すると、リクエストをAPサーバーにリダイレクトする。
③APサーバーは呼び出されたJSPページをサーブレットに変換するコンパイラに渡す。
④コンパイラにより、JSPページの中に記述されたHTMLタグやJavaコードがすべてサーブレットに変換され、サーブレットにより生成されたHTMLページをブラウザに返す。