Articles

JSPライフサイクルイベント説明

Jspは実際にはサーブレットです。 コンテナは、すべてのJSPファイルを実行する前にサーブレットに変換します。 Jspは、java以外のコードを含むコンポーネントを簡単に作成する方法を提供します。

JSPページが作成されてデプロイされると、コンテナはいくつかのライフサイクルイベントを実行します。

  1. JSPページ翻訳(検証、翻訳、コンパイルフェーズ)
  2. ロードクラス
  3. インスタンス化
  4. jspInitメソッドが呼び出されます
  5. _jspserviceメソッドが呼び出されます
  6. jspDestroyメソッドが呼び出されます
  7. jspページの翻訳(検証、翻訳、コンパイルフェーズ)

    翻訳の前に検証が実行されます。 構文チェックが行われ、JSP内のタグライブラリ、アクション、EL関数へのすべての参照が検証され、それらが存在し、ページにアクセスできることが確認され、問題が発生するとエラーが発生し、翻訳プロセスが続行されなくなります。

    検証の前に、JSPページがXMLビューに変換され、このxml isビューが検証され、変換されます。

    初期JSP入力ページをサーブレットソースコードに変換します。 そうしている間、JSP内のjava以外の行ごとにprint文が書き込まれます。 この生成されたサーブレットは、環境がHTTPベースかどうかに基づいてHttpJspPageまたはその親JspPageを実装する必要があります。 関連ブログ:Angular training in Chennai

    • ベンダーは通常、必要なすべてのクラスまたはインターフェイスを拡張して実装する特殊なJSPベースサーブレットを持っています。 Tomcatでは、これはorgと呼ばれます。アパッチジャスパーランタイム。———– HttpJspBaseは、HttpServletとGenericServletを拡張し、HttpJspPage、JspPage、Serializable、Servlet、ServletConfigを実装します。

    サーブレットソースコードは、サーブレットクラスファイルにコンパイルされます。

    出力

    • 変換フェーズ内には二つの出力があります。
    • 最初のものは中間出力です:サーブレット用のJavaソースファイルです。
    • 二つ目は、サーブレットソースからコンパイルされたクラスファイルです。
    • クラスファイルは将来の使用のために保持され、ほとんどのJSPコンテナはデバッグ目的でサーブレットソースを保持するか、オプションを提供するこTomcatでは、JSP変換中に生成されたサーブレットJavaソースとコンパイルされたクラスは、デフォルトで、Tomcat-Installation-Directory>/work/Catalina/localhost/<context-directory>/org/apache/jspに保持されます。

    Timing

    • JSPコンテナはいつ変換が行われるかについて裁量を持っていますが、デフォルトでは(ほとんどの場合)JSPはサーブレットにコンパイルされ、最初
    • これは、最初の要求のための小さな遅延が発生する可能性がありますが、その後の要求には遅延はありません。
    • 特定のアプリケーションサーバーでは、JspをJarに追加する前にjspをプリコンパイルすることもできます。

    エラー

    • ページの変換に失敗した場合、ページのHTTP要求は、HTTP応答で通信された500(サーバーエラー)ステータスコードを発生させる必要があります。

    ロードクラス

    • 生成されたサーブレットクラスは、アプリケーションのクラスローダーを使用してロードされます。

    インスタンス化

    • サーブレットクラスのインスタンスが作成されます。Web内のJSPのすべてのサーブレットマッピング宣言の
    • 。xml(サーブレットに似ています)では、標準JSPファイルインスタンスに加えて新しいインスタンスが作成されます。 コンテキストルートにJSPページがあり、webに同じJSPページも登録している場合。xmlでは、そのJSPの2つのインスタンスが作成されます。

    jspInitメソッドが呼び出されます

    • このメソッドをオーバーライドできます。

    _jspserviceメソッドが呼び出されます

    • 要求が行われると、コンテナは生成されたサーブレットのservice(request,response)メソッドを呼び出します。_jspservice()メソッドを呼び出し、要求と応答
    • JSPページから_jspservice()をオーバーライドしてはいけません。 個々のJSPごとにこのメソッドを実装するのは、コンテナのページジェネレータ次第です。
    • しかし、JSP仕様は、このメソッドをオーバーライドして実装したい要求/応答プロトコルに対応するのに十分な柔軟性があります。_jspserviceメソッドをオーバーライドする必要があるのは_jspserviceメソッドだけです。

    jspDestroyメソッドが呼び出されます

    • JSPサーブレットのインスタンスが無効化され、ガベージコレクトされる前に呼び出されます

    覚えておくべき重要な点

コメントを残す

メールアドレスが公開されることはありません。