Gymterview
junior

Расскажите об этапах жизненного цикла JSP

Жизненный цикл JSP управляется контейнером и состоит из семи фаз. Первые три происходят при первом обращении (или при изменении JSP-файла), остальные — при каждом запросе.

Фаза Описание Когда
Translation Парсинг JSP-файла, генерация Java-кода сервлета При первом обращении / изменении файла
Compilation Компиляция сгенерированного .java в .class При первом обращении / изменении файла
Class Loading Загрузка скомпилированного класса в JVM При первом обращении / изменении файла
Instantiation Создание экземпляра класса через конструктор без параметров Один раз
Initialization Вызов jspInit() с параметрами из web.xml Один раз
Request Processing Вызов _jspService() для каждого запроса в отдельном потоке Многократно
Destroy Вызов jspDestroy() при остановке приложения Один раз

Как и сервлеты, JSP поддерживает ленивую загрузку (по первому запросу) и eager-загрузку (через load-on-startup). При ленивой загрузке первый пользователь ожидает трансляцию и компиляцию, что может занять несколько секунд для сложных страниц.

На собеседовании: ключевое — JSP жизненный цикл аналогичен сервлету с двумя дополнительными фазами: Translation и Compilation. Это потому что JSP — шаблон, который компилируется в сервлет.