Почему нам нужен init () метод в сервлете? Разве мы не можем использовать конструктора для инициализации?
Поскольку Сервлет является интерфейсом, не абстрактным классом. Аргументы конструктора не могут быть указаны в интерфейсе, таким образом, ServletContext должен быть указан на нормальной сигнатуре метода.
Это позволяет серверу приложений знать, как инициализировать любую реализацию Сервлета правильно.
Другое решение состояло бы в том, чтобы потребовать, но не осуществить во время компиляции, взятие конструктора ServletContext. Сервер приложений затем вызвал бы конструктора через отражение. Однако разработчики спецификации Сервлета не сделали выбрал этот путь.