Жизненный цикл сервлета начинается с запуска метода init. В абстрактном классе GenericServlet объявлено 2 варианта метода: init() и init(ServletConfig config).
В спецификации указано, что при использовании public void init(ServletConfig config) необходимо первой строкой вызвать super.init(config), иначе ServletConfig будет иметь значение null. Это логично, поскольку в GenericSerlvet есть переменная private transient ServletConfig config.
Однако для удобства, можно использовать public void init().
Откуда в этом случае берется экземпляр типа ServletConfig?
UPD: Можно поставить вопрос по-другому.
За создание экземпляра ServletConfig отвечает контейнер. Тогда почему при init(ServletConfig config) он не создает этот экземляр, а при init() создает?
UPD2: Когда какой метод лучше использовать?
Как мне кажется, метод javax.servlet.GenericServlet#init() существует только для того, чтобы его переопределять. При этом он не абстрактный для того, чтобы сделать переопределение необязательным.
Метод javax.servlet.GenericServlet#init(javax.servlet.ServletConfig) и так вызывает внутри себя метод init(), поэтому стоит пользоваться только методом с аргументом javax.servlet.ServletConfig, но переопределять для дополнительной логики стоит метод init() без аргументов.
В интерфейсе Servlet определен метод init(ServletConfig config). Изначально только его реализовывал GenericServlet. При создании объекта ServletConfig, контейнер сервлетов вызывает init(ServletConfig config). Поэтому при переопределении, если не вызывать первой строкой super.init(config), объект конфига не будет проинициализирован. Позже в GenericServlet добавили перегруженный метод init(). Это сделано для того, чтобы не приходилось постоянно вызывать первой строкой super.init(config), вообщем-то для удобства. А поскольку в этом случае init(ServletConfig config) не переопределен, контейнер сделает своё дело корректно - дернет унаследованный init(ServletConfig config).
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости