Gymterview
junior

Расскажите о методах жизненного цикла JSP

Контейнер создаёт из JSP-страницы класс сервлета, наследующий javax.servlet.jsp.HttpJspBase, с тремя ключевыми методами жизненного цикла.

Метод Назначение Можно переопределить
jspInit() Инициализация: чтение конфигурации, подготовка ресурсов. Вызывается один раз Да
_jspService() Обработка запроса: генерация HTML. Генерируется автоматически из содержимого JSP Нет
jspDestroy() Очистка: освобождение ресурсов. Вызывается один раз перед уничтожением Да

Метод _jspService() начинается с нижнего подчёркивания — это конвенция, означающая, что метод генерируется контейнером и не должен переопределяться разработчиком. Содержимое этого метода полностью определяется HTML-разметкой и JSP-элементами на странице.

Переопределение jspInit() и jspDestroy() выполняется через JSP-декларации:

Пример
<%!
    public void jspInit() {
        // инициализация ресурсов
    }

    public void jspDestroy() {
        // освобождение ресурсов
    }
%>

На собеседовании: запомните, что _jspService() нельзя переопределить (начинается с _), а jspInit() и jspDestroy() — можно. Это аналог init()/destroy() в обычных сервлетах.