2008-09-27 14 views
7

¿Por qué necesitamos un método init() en servlet? ¿No podemos usar el constructor para la inicialización?Constructor de servlets y método init()

+0

Ver [mi respuesta a una pregunta similar] (http://stackoverflow.com/questions/1276082/constructor-in-servlet/2659597#2659597). – gawi

Respuesta

18

Porque Servlet es una interfaz, no una clase abstracta. Los argumentos de constructor no se pueden especificar en una interfaz, por lo que el ServletContext debe especificarse en una firma de método normal.

Esto permite que el servidor de aplicaciones sepa cómo inicializar correctamente cualquier implementación de Servlet.

Otra solución habría sido requerir, pero no exigir en tiempo de compilación, que un constructor tomara ServletContext. El servidor de aplicaciones llamaría al constructor por reflexión. Sin embargo, los diseñadores de la especificación Servlet no eligieron esta ruta.

+1

+1 realmente útil :) – 0decimal0

Cuestiones relacionadas