2016-04-13 3 views
2

В сервлете я отправляю данные инициализации с помощью тегов инициализации web.xml. Почему мне нужно переопределить метод init для чтения параметров, я могу получить значения через getServletConfig().getInitParameter("someName") в моем методе doGet!Необходимый метод инициализации сервлета

Кроме того, то же самое с конфига, я могу получить доступ к параметрам инициализации с помощью этого метода: request.getServletContext().getInitParameter("xyz");

Зачем мне нужно переопределить метод инициализации, и убедитесь, что суперкласс объект конфигурации устанавливается и т.д. и т.п.?

+0

Это именно то, как они его проектировали. Оглядываясь назад, это, по-видимому, не требуется, если только они не планируют людей, использующих обертки ServletConfig или аналогичные. – EJP

ответ

0

Я думаю, что он может использоваться для ресурсов инициализации или сервлета полей, потому что сервлет-init, вызванный только в то время, когда сервлет загружается и выгружается (это редко бывает). Он добавляет некоторую независимость в ваш код из параметров значений, и вы можете изменить свой параметр без изменений в коде, также если вы переопределите init-метод для своего сервлета init только один раз и не выполняете его каждый раз, когда кто-то посылает запрос на ваш сервлет

0

метод инициализации переопределять не для настройки инициализации параметров, это делается с помощью метода инициализации (ServletConfig конфигурации) в суперкласса, который вызывает ваш метод инициализации и называется контейнером -

public void init(ServletConfig config) throws ServletException { 
    this.config = config; 
    this.init(); 
} 

Eсть также не имеет смысла вызывать метод инициализации суперкласса, поскольку он пуст -

public void init() throws ServletException { 

} 

Вы должны переопределить метод init, если хотите выполнить какой-либо другой код, который требуется перед первым запросом. Например, создание соединения с базой данных, настройка некоторых данных регистрации и т. Д. Если это не относится к вашему коду, вы можете его игнорировать.

Смежные вопросы