質問

サーブレットにinit()メソッドが必要なのはなぜですか?コンストラクタを使用して初期化できませんか?

役に立ちましたか?

解決

サーブレットは抽象クラスではなくインターフェースであるため。コンストラクターの引数はインターフェイスでは指定できないため、通常のメソッドシグネチャでServletContextを指定する必要があります。

これにより、アプリケーションサーバーはサーブレット実装を適切に初期化する方法を知ることができます。

別の解決策は、ServletContextを取得するコンストラクターをコンパイル時に強制するのではなく、要求することでした。アプリケーションサーバーは、リフレクションを介してコンストラクターを呼び出します。ただし、サーブレット仕様の設計者はこのパスを選択しませんでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top