junior
Что вы знаете о PageContext и какие преимущества его использования
PageContext — абстрактный класс javax.servlet.jsp.PageContext, экземпляр которого предоставляет единую точку доступа ко всем неявным объектам, областям видимости и сервисным методам JSP-страницы. Это «универсальный пульт управления» для JSP.
Возможности PageContext
- Доступ к атрибутам всех scope — через единый API:
getAttribute(name, scope),setAttribute(name, value, scope) - Доступ к неявным объектам —
getRequest(),getResponse(),getSession(),getServletContext() - Получение JspWriter —
getOut()для записи в выходной поток - Перенаправление —
forward()иinclude()для управления потоком запроса - Обработка ошибок —
handlePageException()для перенаправления на error page
Константы scope для метода getAttribute():
Пример
pageContext.getAttribute("data", PageContext.REQUEST_SCOPE);
pageContext.getAttribute("user", PageContext.SESSION_SCOPE);
pageContext.setAttribute("count", 42, PageContext.APPLICATION_SCOPE);
PageContext создаётся через JspFactory.getPageContext() и освобождается через JspFactory.releasePageContext(). Разработчику не нужно вызывать эти методы — контейнер делает это автоматически.
На собеседовании: ключевое преимущество —
PageContextпредоставляет единый API для работы со всеми scope. Вместо четырёх разных объектов (request,session,application,page) используется один метод с параметром scope.