JSPがサーブレットに変わる場合、たとえばjspInit()、ライフサイクルメソッドが異なるのはなぜinit()ですか。
2 に答える
jspInitサーブレットメソッドとは別の方法がある理由は、init1つは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()。