質問
サーブレットにinit()メソッドが必要なのはなぜですか?コンストラクタを使用して初期化できませんか?
解決
サーブレットは抽象クラスではなくインターフェースであるため。コンストラクターの引数はインターフェイスでは指定できないため、通常のメソッドシグネチャでServletContextを指定する必要があります。
これにより、アプリケーションサーバーはサーブレット実装を適切に初期化する方法を知ることができます。
別の解決策は、ServletContextを取得するコンストラクターをコンパイル時に強制するのではなく、要求することでした。アプリケーションサーバーは、リフレクションを介してコンストラクターを呼び出します。ただし、サーブレット仕様の設計者はこのパスを選択しませんでした。
所属していません StackOverflow