Спецификация Java Server Pages 1.2

         

JSP.9.2.1 PageContext


Синтаксис


public abstract class PageContext


Описание

Экземпляр PageContext предоставляет доступ ко всем пространствам имён, ассоциированным с JSP-страницей, предоставляет доступ к некоторым атрибутам страницы, а также слой поверх деталей реализации.


Неявные объекты добавляют pageContext автоматически.


Класс PageContext является абстрактным классом, созданный как расширяемый для предоставления реализаций соответствующей средой запуска программ JSP-машины.


Экземпляр PageContext получается классом реализации JSP через вызов метода JspFactory.getPageContext() и освобождается через вызов JspFactory.releasePageContext().

Примеры использования PageContext, JspFactory и других классов в объекте реализацииJSP-страницы можно найти повсюду.


PageContext облегчает работу автора страниц/компонентов и реализатора страниц, предоставляя:

  • один общий API для обслуживания пространств имён с разными областями видимости
  • несколько удобных API для доступа к различным public-объектам
  • механизм получения JspWriter для вывода/output
  • механизм обслуживания работы страницы с сессией
  • механизм экспонирования атрибутов директивы page в среде скриптинга
  • механизмы направления или включения текущего запроса в другие активные компоненты приложения
  • механизм процессинга обработки исключения errorpage

  • Методы, Предназначенные для Кода, Генерируемого Контейнером
     



    Некоторые методы предназначены для использования в коде, генерируемом контейнером, а не для кода, написанного авторами JSP-страниц или библиотек тэгов JSP.


    Методы, поддерживающие lifecycle/жизненный цикл - initialize() и release()


    Следующие методы делают возможным обслуживание вложенных JspWriter-потоков через реализацию Tag Extensions/Расширений Тэгов: pushBody() и popBody()


    Методы, Предназначенные для Авторов JSP
     

    Некоторые методы предоставляют универсальный доступ к различным объектам, представляющим области видимости/scopes. Реализация обязана использовать основные механизмы Servlet, соответствующие данной области видимости/scope, чтобы информация могла передаваться туда и обратно между Сервлетами и JSP-страницами.


    Это методы: setAttribute(), getAttribute(), find-Attribute(), removeAttribute(), getAttributesScope() и getAttributeNamesIn-Scope().

    Следующие методы предоставляют удобный доступ к неявным/implicit объектам: getOut(), getException(), getPage() getRequest(), getResponse(), getSession(), getServlet-Config()

    и getServletContext().

    Следующие методы предоставляют поддержку перенаправления/forwarding, включения в/inclusion и обработки ошибок: forward(), include()  handlePageException().

    JSP.9.2.1.7 Поля
     




    public static final java.lang.String APPLICATION


    Имя используется в для хранения ServletContext в таблице имён PageContext.

    public static final int APPLICATION_SCOPE


    Область видимости приложения: именованные ссылки остаются доступными в ServletContext, пока он не будет затребован обратно.

    public static final java.lang.String CONFIG

    Имя используется для хранения ServletConfig в таблице имён PageContext.


    public static final java.lang.String EXCEPTION

    Имя используется для хранения неотловленного исключения в списке атрибутов ServletRequest и в таблице имён PageContext.

    public static final java.lang.String OUT


    Имя используется для хранения текущего JspWriter в таблице имён PageContext.

    public static final java.lang.String PAGE


    Имя используется для хранения Сервлета в таблицах имён данного PageContext.

    public static final int PAGE_SCOPE


    Область видимости: (по умолчанию) именованные ссылки остаются видимыми в данном PageContext до возврата из текущего вызова Servlet.service().

    public static final java.lang.String PAGECONTEXT


    Имя используется для хранения этого PageContext в его собственной таблице имён.

    public static final java.lang.String REQUEST

    Имя используется для хранения ServletRequest в таблице имён PageContext.

    public static final int REQUEST_SCOPE


    Область видимости: именованные ссылки остаются доступными из Servlet-Request, ассоциированного с Сервлетом, до завершения текущего запроса.

    public static final java.lang.String RESPONSE


    Имя используется для хранения ServletResponse в таблице имён PageContext.




    public static final java.lang.String SESSION


    Имя используется для хранения HttpSession в таблице имён PageContext.

    public static final int SESSION_SCOPE


    Область видимости (верна, только если эта страница участвует в сессии): именованные ссылки остаются доступными из HttpSession (если он имеется), ассоциированного с Сервлетом, пока HttpSession не будет закрыта.

    JSP.9.2.1.8 Конструкторы
     


    public PageContext()

    JSP.9.2.1.9 Методы
     


    public abstract java.lang.Object findAttribute(java.lang.String name)


    Ищет именованные атрибуты на странице, в запросе/request, сессии/session (если запущена) и области(-ях) видимости приложения, чтобы возвратить ассоциированные значения или null.

    Возвращает: ассоциированное значение или null.

    public abstract void forward(java.lang.String relativeUrlPath)


    Этот метод используется для "направления" или перенаправления текущих ServletRequest и ServletResponse другому активному компоненту приложения.

    Если relativeUrlPath начинается с “/”, тогда специфицированный URL вычисляется относительно DOCROOT ServletContext'а для данной JSP. Если путь не начинается с “/”, тогда специфицированный URL вычисляется относительно URL запроса, который был отображён в вызывающую JSP.

    Верен только для вызова этого метода из выполнения Thread/Потока в методе _jsp-Service(...)JSP.

    Если этот метод был успешно вызван, вызывающему Thread не разрешается модификация объекта ServletResponse. Любая попытка сделать это даёт непредсказуемый результат. Обычно вызывающий объект сразу же возвращается из _jspService(...) после вызова этого метода.

    Параметры:

    relativeUrlPath

    - специфицирует относительный путь URL к целевому ресурсу, как рассмотрено выше.

    Вызывает:
     

    ServletException, IOException

    IllegalArgumentException - если URL целевого ресурса не может быть разрешён/высчитан.

    IllegalStateException - если ServletResponse не в том состоянии, чтобы выполнить forward/направление.

    SecurityException - если вызывающий не может получить доступ к целевому ресурсу.



    public abstract java.lang.Object getAttribute(java.lang.String name)


    Возвращает объект, ассоциированный с именем в области видимости страницы, или null, если объект не найден.

    Параметры:

    name - имя атрибута для получения.

    Вызывает:

    NullPointerException - если имя - null.

    IllegalArgumentException - если область видимости неверна.

    public abstract java.lang.Object getAttribute(java.lang.String name, int scope)


    Возвращает объект, ассоциированный с именем в специфицированной области видимости, или null, если объект не найден.

    Параметры:

    name - имя атрибута для установки.

    scope - область видимости, с которой ассоциировать имя/объект.

    Вызывает:

    NullPointerException - если имя - null.

    IllegalArgumentException - если область видимости неверна.

    public abstract java.util.Enumeration getAttributeNamesInScope(int scope)


    Перечисляет все атрибуты в данной области видимости.

    Возвращает: перечисление имён (java.lang.String) всех атрибутов специфицированной области видимости.

    public abstract int getAttributesScope(java.lang.String name)


    Получает область видимости, в которой определён данный атрибут.

    Возвращает: область видимости объекта, ассоциированного со специфицированным именем, или 0.

    public abstract java.lang.Exception getException()


    Текущее значение объекта exception (Exception).

    Возвращает: любое исключение, переданное ему как errorpage.

    public abstract JspWriter getOut()


    Текущее значение объекта вывода/out (JspWriter).

    Возвращает: поток текущего JspWriter, используемый для ответа клиенту.

    public abstract java.lang.Object getPage()


    Значение объекта страницы/page (Servlet).

    Возвращает: экземпляр класса реализации (Servlet), ассоциированный с этим PageContext.

    public abstract javax.servlet.ServletRequest getRequest()


    Текущее значение объекта request (ServletRequest).

    Возвращает: ServletRequest для данного PageContext.

    public abstract javax.servlet.ServletResponse getResponse()


    Текущее значение объекта response (ServletResponse).

    Возвращает: ServletResponse для данного PageContext.



    public abstract javax.servlet.ServletConfig getServletConfig()


    Экземпляр ServletConfig.

    Возвращает: ServletConfig для данного PageContext.

    public abstract javax.servlet.ServletContext getServletContext()


    Экземпляр ServletContext.

    Возвращает: ServletContext для данного PageContext.

    public abstract javax.servlet.http.HttpSession getSession()


    Текущее значение объекта session (HttpSession).

    Возвращает: HttpSession для данного PageContextили null.

    public abstract void handlePageException(java.lang.Exception e)


    Этот метод предназначен для обработки необработанных исключений уровня “page” путём перенаправления исключения специализированной для данной JSP странице ошибок/error page, или, если ничего не специфицировано, для выполнения акции, определяемой реализацией.

    Класс реализации JSP обычно будет очищать локальный статус до вызова этого метода и будет возвращать сразу после этого. Не разрешается генерировать какой-либо вывод клиенту или модифицировать любой статус ServletResponse после этого вызова.

    Этот метод сохранён для обеспечения обратной совместимости. Вновь генерируемый код должен использовать PageContext.handlePageException(Throwable).

    Параметры:

    e - обрабатываемое исключение.

    Вызывает:

    ServletException, IOException

    NullPointerException - если исключение - null.

    SecurityException - если вызывающий не может достичь целевого ресурса.

    См. Также: public abstract void handlePageException(java.lang.Throwable t)

    public abstract void handlePageException(java.lang.Throwable t)


    Этот метод идентичен

    handlePageException(Exception), за исключением того, что он принимает Throwable. Это предпочтительный метод, так как он даёт возможность правильной реализации семантики errorpage.

    Этот метод предназначен для обработки необработанных исключений уровня “page” путём перенаправления исключения специализированной для данной JSP странице ошибок/error page, или, если ничего не специфицировано, для выполнения акции, определяемой реализацией.

    Класс реализации JSP обычно будет очищать локальный статус до вызова этого метода и будет возвращать сразу после этого. Не разрешается генерировать какой-либо вывод клиенту или модифицировать любой статус ServletResponse после этого вызова.




    Параметры:

    t - обрабатываемый throwable.

    Вызывает:

    ServletException, IOException

    NullPointerException - если исключение - null.

    SecurityException - если вызывающий не может достичь целевого ресурса.

    См. Также: public abstract void handlePageException(java.lang.Exception e)

    public abstract void include(java.lang.String relativeUrlPath)


    Вызывает обработку ресурса, специфицированного для обработки как часть текущих Servlet-Request и ServletResponse, в вызывающем Thread. Вывод обработки целевых ресурсов запроса записывается непосредственно в поток вывода ServletResponse.

    Текущий JspWriter “out” для данной JSP очищается - как побочный эффект этого вызова - до обработки include.

    Если relativeUrlPath начинается с “/”, тогда специфицированный URL вычисляется относительно DOCROOT ServletContext'а для данной JSP. Если путь не начинается с “/”, тогда специфицированный URL вычисляется относительно URL запроса, который был отображён в вызывающую JSP. Верным является только вызов этого метода из выполнения Thread в методе _jsp-Service(...) JSP.

    Параметры:

    relativeUrlPath - специфицирует относительный путь-URL к включаемому целевому ресурсу.

    Вызывает:

    ServletException, IOException

    IllegalArgumentException - если URL целевого ресурса не может быть разрешён.

    SecurityException - если вызывающий не может достичь целевого ресурса.

    public abstract void initialize(javax.servlet.Servlet servlet, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, java.lang.String errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush)

    Метод initialize вызывается для инициализации неинициализированного PageContext, чтобы он мог быть использован классом реализации JSP для обслуживания входящих запросов и для ответов в его методе _jspService().

    Этот метод обычно вызывается из JspFactory.getPageContext() для инициализации статуса.

    Этот метод необходим для создания начального JspWriter и ассоциирования имени “out”

    в области видимости страницы с этим вновь созданным объектом.



    Этот метод не должен использоваться авторами страниц или библиотек тэгов.

    Параметры:

    servlet - Servlet, ассоциированный с данным PageContext.

    request - текущий рассматриваемый запрос для данного Servlet.

    response - текущий рассматриваемый ответ для данного Servlet.

    errorPageURL - значение атрибута errorpage в директиве page, или null.

    needsSession - значение атрибута session директивы page.

    bufferSize - значение атрибута buffer директивы page.

    autoFlush - значение атрибута autoflush директивы page.

    Вызывает:

    IOException - во время создания JspWriter.

    IllegalStateException - если некорректно инициализирован.

    IllegalArgumentException

    public JspWriter popBody()


    Возвращает предыдущий JspWriter “out”, сохранённый совпадающим pushBody(), и обновляет значение атрибута “out” в пространстве имён атрибута страницы scope в PageConxtext.

    Возвращает: сохранённый JspWriter.

    public BodyContent pushBody()


    Возвращает новый объект BodyContent, сохраняет текущий “out” JspWriter и обновляет значение атрибута “out” в пространстве имён атрибута страницы scope в PageContext.

    Возвращает: новый BodyContent.

    public abstract void release()


    Этот метод должен “reset/восстанавливать” внутренний статус PageContext, освобождая все внутренние ссылки и подготавливая PageCont для возможного использования последующим вызовом initialize(). Этот метод обычно вызывается из Jsp-Factory.releasePageContext().

    Подклассы будут окружать/envelop этот метод.

    Этот метод не должен использоваться авторами страниц или библиотек тэгов.

    public abstract void removeAttribute(java.lang.String name)


    Удаляет ссылку на объект, ассоциированную с данным именем, просматривает во всех scope в порядке scope.

    Параметры:

    name - имя удаляемого объекта.

    public abstract void removeAttribute(java.lang.String name, int scope)


    Удаляет ссылку на объект, ассоциированную с данным именем, в данной области видимости.

    Параметры:

    name - имя удаляемого объекта.

    scope - область видимости, где идёт просмотр.

    public abstract void setAttribute(java.lang.String name, java.lang.Object attribute)


    Регистрирует имя и объект, специфицированные с семантикой области видимости страницы.

    Параметры:

    name - имя устанавливаемого атрибута.

    attribute - объект для ассоциирования с этим именем.

    Вызывает:

    NullPointerException - если name или object - null.

    public abstract void setAttribute(java.lang.String name, java.lang.Object o, int scope)


    Регистрирует имя и объект, специфицированные с семантикой соответствующей области видимости.

    Параметры:

    name - имя устанавливаемого атрибута.

    o - объект для ассоциирования с этим именем.

    scope - область видимости, с которой ассоциируется name/object.

    Вызывает:

    NullPointerException - если name или object- null.

    IllegalArgumentException - если область видимости неверна.


    Содержание раздела