[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-est-li-smysl-opredelyat-dlya-servleta-konstruktor":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},520,"est-li-smysl-opredelyat-dlya-servleta-konstruktor",13,"servlety","Сервлеты","🖧","Есть ли смысл определять для сервлета конструктор","Определять конструктор для сервлета нет смысла, потому что на момент вызова конструктора объект `ServletConfig` ещё не создан и параметры инициализации недоступны. Для инициализации данных следует переопределять метод `init()`.\n\nКонтейнер сервлетов создаёт экземпляр сервлета вызовом конструктора без параметров через рефлексию (`Class.newInstance()`). Только после этого вызывается `init(ServletConfig config)`, который предоставляет доступ к конфигурации. Поэтому любая инициализация, зависящая от конфигурации (подключение к БД, чтение параметров), должна выполняться в `init()`.\n\nКроме того, в конструкторе невозможно выбросить `ServletException`, а в `init()` — можно, что позволяет корректно сигнализировать контейнеру о проблемах при инициализации.\n\n> **На собеседовании:** ключевой аргумент — `ServletConfig` доступен только в `init()`, но не в конструкторе. Это следствие двухфазной инициализации: сначала создание объекта, затем его конфигурирование.","","junior",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Есть ли смысл определять для сервлета конструктор — Gymterview","Определять конструктор для сервлета нет смысла, потому что на момент вызова конструктора объект `ServletConfig` ещё не создан и параметры инициализации недоступ","Определять конструктор для сервлета нет смысла, потому что на момент вызова конструктора объект `ServletConfig` ещё не с",[15,13],"Определять конструктор для сервлета нет смысла, потому что на момент вызова конструктора объект `ServletConfig` ещё не создан и параметры инициализации недоступны. Для инициализации данных следует переопределять метод `init()`.",true]