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