JSPがサーブレットに変わる場合、たとえばjspInit()
、ライフサイクルメソッドが異なるのはなぜinit()
ですか。
2 に答える
jspInit
サーブレットメソッドとは別の方法がある理由は、init
1つはJSPを実装するサーブレット(サーブレットコンテナを実装する開発者によって作成される)用であり、もう1つはJSPコード(アプリケーション開発者によって使用される)用です。JSPがinitメソッドを使用した場合、サーブレットの実装が行っていたことをオーバーライドできます。個別のメソッドを使用すると、JSP実装者はからコードを取得し、生成されたサーブレットjspInit
のメソッドに追加できます。init
私はそれを最も簡単な方法で正しく説明しようとします(正しい@Nathan Hughesの答えに加えて):
HTMLとJAVAコードの観点からは、サーブレットはJAVAでラップされたHTMLに似ています。多層アーキテクチャでのアプリケーション層の処理を強力にサポートします。一方、JSPは、プレゼンテーション層の作成をサポートするために作成されました。サーブレットのinit()
メソッドは、サーブレットの初期化中に1回だけ呼び出されます。
したがって、最初のポイント:サーブレットはJSPの前にここにありました。
次にJSPに移ります。繰り返しますが、HTMLとJAVAの観点からは、JSPはHTMLでラップされたJAVAに似ています。
WEB CONTAINERは、JSPの「ソースコード」を同等のサーブレットJavaコードに変換します。次に、この翻訳されたJavaサーブレットのソースコードがコンパイルされ、WEBCONTAINERがサーブレットの実現を処理します。単に:
MyPage.jsp->(変換)-> MyPage_jsp.java->(コンパイル)-> MyPage_jsp.class->(ロード)->Javaサーブレット
このメソッドは、JSPライフサイクルの初期化フェーズのjspInit()
一部としてWEBCONTAINERによって呼び出されます。
だからあなたの質問に:jspInit()
等しくない init()
。