Frage

Warum brauchen wir eine Methode init () in Servlet? Können wir nicht den Konstruktor verwenden, um die Initialisierung?

War es hilfreich?

Lösung

Da Servlets ist eine Schnittstelle, nicht eine abstrakte Klasse. Constructor Argumente können nicht auf einer Schnittstelle festgelegt werden, so dass der ServletContext muss auf einem normalen Methodensignatur spezifiziert werden.

Dies ermöglicht es der Anwendungsserver zu wissen, wie jede Servlet Implementierung richtig initialisiert werden.

Eine andere Lösung wäre erforderlich gewesen, aber nicht bei der Kompilierung durchzusetzen, ein Konstruktor unter ServletContext. Der Anwendungsserver würde dann rufen Sie den Konstruktor über Reflexion. Allerdings haben die Designer der Servlet-Spezifikation nicht diesen Weg gewählt haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top