Web サーバーには、JSP ページを処理するコンテナーである JSP エンジンが必要です。コンテナは、JSP ページのリクエストをインターセプトする役割を果たします。このチュートリアルでは、Apache と組み込みの JSP コンテナを使用して、JSP 開発をサポートします。
JSP コンテナは Web サーバーと連携して、JSP の通常の動作に必要な動作環境やその他のサービスを提供し、JSP Web ページに固有の特別な要素を正確に識別できます。
次の図は、Web アプリケーション内の JSP コンテナと JSP ファイルの場所を示しています。
次の手順は、Web サーバーが JSP を使用して Web ページを作成する方法を示しています。
他の通常の Web ページと同様に、ブラウザは HTTP リクエストをサーバーに送信します。
Web サーバーは、これが JSP Web ページに対するリクエストであることを認識し、そのリクエストを JSP エンジンに渡します。これは、URL または .jsp ファイルを使用して行われます。
JSP エンジンは、JSP ファイルをディスクからロードし、サーブレットに変換します。この変換は、すべてのテンプレート テキストを println() ステートメントに変換し、すべての JSP 要素を Java コードに変換するだけです。
JSP エンジンはサーブレットを実行可能クラスにコンパイルし、元のリクエストをサーブレット エンジンに渡します。
Web サーバーのコンポーネントはサーブレット エンジンを呼び出し、サーブレット クラスをロードして実行します。実行中、サーブレットは HTML 形式で出力を生成し、それを HTTP 応答に埋め込んで Web サーバーに送信します。
Web サーバーは、HTTP 応答を静的な HTML Web ページの形式でブラウザに返します。
最終的に、Web ブラウザは、HTTP 応答で動的に生成された HTML ページを静的な Web ページであるかのように処理します。
上記の手順は、次の図で表すことができます。
通常、JSP エンジンは、JSP ファイルに対応するサーブレットが既に存在するかどうか、および JSP ファイルの変更日がサーブレットよりも古いかどうかを確認します。 JSP ファイルの変更日が対応するサーブレットよりも前の場合、コンテナは JSP ファイルが変更されておらず、サーブレットが有効であることを確認できます。これにより、プロセス全体が他のスクリプト言語 (PHP など) よりも効率的かつ高速になります。
一般に、JSP Web ページは、Java プログラミングの専門家にならずにサーブレットを作成するもう 1 つの方法です。解釈段階を除けば、JSP Web ページはほぼ通常のサーブレットとして扱うことができます。