JSP 構造
ネットワークサーバーは、JSPページを処理するためのJSPエンジン、つまりコンテナを必要とします。コンテナはJSPページへのリクエストを傍受する役割を担います。本チュートリアルでは、JSPコンテナを内蔵したApacheを使用してJSP開発をサポートします。
JSPコンテナはWebサーバーと連携して、JSPの正常な動作に必要な実行環境やその他のサービスを提供し、JSPウェブページに固有の特殊な要素を正しく識別できます。
次の図は、WebアプリケーションにおけるJSPコンテナとJSPファイルの位置を示しています。
JSP 処理
以下の手順は、WebサーバーがJSPを使用してウェブページを作成する方法を示しています。
-
他の通常のウェブページと同様に、ブラウザはサーバーにHTTPリクエストを送信します。
-
WebサーバーはこれがJSPウェブページへのリクエストであることを識別し、そのリクエストをJSPエンジンに渡します。これはURLまたは.jspファイルを使用して行われます。
-
JSPエンジンはディスクからJSPファイルをロードし、それらをServletに変換します。この変換は、単にすべてのテンプレートテキストをprintln()文に置き換え、すべてのJSP要素をJavaコードに変換するだけです。
-
JSPエンジンはServletを実行可能なクラスにコンパイルし、元のリクエストをServletエンジンに渡します。
-
WebサーバーのあるコンポーネントがServletエンジンを呼び出し、Servletクラスをロードして実行します。実行中に、ServletはHTML形式の出力を生成し、それをHTTPレスポンスに埋め込んでWebサーバーに引き渡します。
-
WebサーバーはHTTPレスポンスを静的HTMLウェブページとしてブラウザに返します。
-
最終的に、WebブラウザはHTTPレスポンス内で動的に生成されたHTMLウェブページを、静的ウェブページを処理するのと同じように処理します。
上記の手順は次の図で表すことができます。
一般的に、JSPエンジンはJSPファイルに対応するServletが既に存在するかどうかをチェックし、JSPファイルの変更日時がServletより前かどうかをチェックします。JSPファイルの変更日時が対応するServletより前であれば、コンテナはJSPファイルが変更されておらず、Servletが有効であると判断できます。これにより、全体のプロセスは他のスクリプト言語(PHPなど)と比較して効率的で高速になります。
要するに、JSPウェブページは、Javaプログラミングの達人にならずにServletを書くための別の方法です。解釈段階を除けば、JSPウェブページはほとんど通常のServletとして扱うことができます。
その他の拡張機能