プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

JSPページのしくみ。誰かがJSPアーキテクチャをより簡単な言葉で説明できますか


Webサーバーには、JSPエンジン、つまり、JSPページを処理するためのコンテナが必要です。 JSPコンテナは、JSPページのリクエストをインターセプトする役割を果たします。このチュートリアルでは、JSPページの開発をサポートするためにJSPコンテナが組み込まれているApacheを使用します。

JSPコンテナはWebサーバーと連携して、JSPが必要とするランタイム環境やその他のサービスを提供します。 JSPの一部である特別な要素を理解する方法を知っています。

次の図は、WebアプリケーションでのJSPコンテナとJSPファイルの位置を示しています。

JSPページのしくみ。誰かがJSPアーキテクチャをより簡単な言葉で説明できますか

JSP処理

次の手順は、WebサーバーがJSPを使用してWebページを作成する方法を説明しています-

  • 通常のページと同様に、ブラウザはHTTPリクエストをウェブサーバーに送信します。

  • Webサーバーは、HTTP要求がJSPページに対するものであることを認識し、それをJSPエンジンに転送します。これは、 .jspで終わるURLまたはJSPページを使用して行われます。 .htmlの代わりに 。

  • JSPエンジンは、JSPページをディスクからロードし、サーブレットコンテンツに変換します。この変換は非常に単純で、すべてのテンプレートテキストがprintln()ステートメントに変換され、すべてのJSP要素がJavaコードに変換されます。このコードは、ページの対応する動的な動作を実装します。

  • JSPエンジンは、サーブレットを実行可能クラスにコンパイルし、元のリクエストをサーブレットエンジンに転送します。

  • サーブレットエンジンと呼ばれるWebサーバーの一部は、サーブレットクラスをロードして実行します。実行中、サーブレットはHTML形式で出力を生成します。出力はさらに、HTTP応答内のサーブレットエンジンによってWebサーバーに渡されます。

  • Webサーバーは、静的HTMLコンテンツの観点からHTTP応答をブラウザに転送します。

  • 最後に、Webブラウザーは、静的ページであるかのように、HTTP応答内で動的に生成されたHTMLページを正確に処理します。

上記のすべての手順は、次の図に示されています-

JSPページのしくみ。誰かがJSPアーキテクチャをより簡単な言葉で説明できますか

通常、JSPエンジンは、JSPファイルのサーブレットがすでに存在するかどうか、およびJSPの変更日がサーブレットよりも古いかどうかを確認します。 JSPが生成されたサーブレットよりも古い場合、JSPコンテナは、JSPが変更されておらず、生成されたサーブレットがまだJSPのコンテンツと一致していると見なします。これにより、プロセスが他のスクリプト言語(PHPなど)よりも効率的になり、したがって高速になります。

つまり、ある意味で、JSPページは、Javaプログラミングの専門家でなくてもサーブレットを作成するためのもう1つの方法です。翻訳フェーズを除いて、JSPページは通常のサーブレットとまったく同じように処理されます。


  1. JSPでCookieをどのように設定しますか?

    JSPを使用したCookieの設定には3つのステップが含まれます- ステップ1:Cookieオブジェクトを作成する どちらも文字列であるCookie名とCookie値を使用してCookieコンストラクターを呼び出します。 Cookie cookie = new Cookie("key","value"); 名前にも値にも空白や次の文字を含めないでください- [ ] ( ) = , " / ? @ : ; ステップ2:最大年齢の設定 setMaxAgeを使用します Cookieが有効である期間(秒単位)を指定します。次のコードは、24時間

  2. JSPでデータソースを設定するにはどうすればよいですか?

    tagは、データソース構成変数を設定するか、他のJSTLデータベースアクションへの入力として使用できるスコープ変数にデータソース情報を保存します。 属性 タグには次の属性があります- 属性 説明 必須 デフォルト ドライバー 登録するJDBCドライバークラスの名前 いいえ なし url データベース接続のJDBCURL いいえ なし ユーザー データベースユーザー名 いいえ なし パスワード データベースパスワード いいえ なし パスワード データベースパスワード いいえ なし dataSource データベースは事前に準備されています いいえ なし