Pregunta

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

¿Fue útil?

Solución

Porque Servlet es una interfaz, no una clase abstracta. Los argumentos del 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 hubiera sido requerir, pero no aplicar, en tiempo de compilación, un constructor que tome ServletContext. El servidor de aplicaciones llamaría al constructor a través de la reflexión. Sin embargo, los diseñadores de la especificación Servlet no eligieron esta ruta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top