Вопрос

Зачем нам нужен метод init() в сервлете?Разве мы не можем использовать конструктор для инициализации?

Это было полезно?

Решение

Потому что сервлет - это интерфейс, а не абстрактный класс.Аргументы конструктора не могут быть указаны в интерфейсе, поэтому ServletContext должен быть указан в обычной сигнатуре метода.

Это позволяет серверу приложений знать, как правильно инициализировать любую реализацию сервлета.

Другим решением было бы потребовать, но не применять во время компиляции, конструктор, принимающий ServletContext.Затем сервер приложений вызовет конструктор с помощью отражения.Однако разработчики спецификации сервлета не выбрали этот путь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top