Доступ к стандартным переменным
В классе PageContext предусмотрены методы для получения ссылок на стандартные (неявные) переменные JSP, которые перечислены в табл. А.20. Поскольку эти переменные автоматически определены в вашей JSP-странице (в методе _jspService()), методы, перечисленные в табл. А.22, используются в основном в других классах.
Таблица А.22. Методы класса PageContext, предназначенные для получения неявных переменных
Неявная переменная |
Тип |
Метод PageContext | |||
exception
out page request response config application session | Exception
JspWriter Object ServletRequest ServletResponse ServletConfig ServletContext HttpSession | getException()
getOut() getPage() getRequest() getResponse() getServletConfig() getServletContext() getSession() |
В табл. А.23 перечислены методы класса PageContext, которые используются для извлечения различных объектов. Обратите внимание на то, что переменные области видимости являются ссылками на константы класса PageContext (см. табл. А.25).
Таблица А.23. Методы класса PageContext, связанные с хранением и извлечением атрибутов
Тип возвращаемого значения |
Метод |
Описание | |||
Object | getAttribute(String name) | Возвращает объект, связанный с указанным именем, областью видимости которого является страница. Если такой объект на странице не обнаружено, возвращается null | |||
void | removeAttribute (String name) | Объект с указанным именем, относящийся к любой области видимости, удаляется | |||
void | setAttribute (String name, Object attribute) | Возвращает объект, который становится атрибутом страницы с именем name и значением attribute | |||
Object | getAttribute (String name, int scope) | Возвращает объект, связанный с указанным именем, в заданной области видимости. Если в этой области объект с таким именем не обнаружен, возвращается null | |||
void | removeAttri bute (String name, int scope) | Удаляет объект, связанный с данным именем | |||
void | setAttribute(String name. Object obj. int scope) | Возвращает объект, который становится атрибутом с именем name и значением obj. Область видимости задается параметром scope | |||
Enumeration | getAttri buteNames I nScope (int scope) | Возвращает перечисление объектов типа String, которые являются атрибутами с указанной областью видимости | |||
int | getAttri buteScope (String name) | Возвращает область видимости атрибута с указанным именем | |||
Object | findAttribute(String name) | Ищет атрибут с заданным именем последовательно в странице, запросе, сеансе (если он существует) и приложении. Возвращает значение атрибута или mil 1 , если такой атрибут не обнаружен |
В табл. А. 24 перечислены методы класса PageContext, которые не вошли ни в одну из приведенных выше категорий.
Таблица А.24. Остальные методы класса PageContext
Тип возвращаемого значения |
Метод |
Описание |
void | forward (String relativeUrlPath) | Переадресует текущие объекты классов ServletRequest и Servl etResponse другому активному компоненту приложения |
void | hand! ePageExcepti on (Exception e) | Этот метод вызывается из раздела try- catch, который включает в себя код вашей JSP-страницы. Он переадресует исключение специальной странице ошибок для данной JSP-страницы или, если она отсутствует, выполняет определенное на этот случай действие |
void | include (String relativeUrlPath) | Указанный ресурс обрабатывается как часть текущих объектов классов ServletRequest и ServletResponse |
void | initialize(Servlet serlet, ServletRequest request, ServletResponse response. String errorPageURL, boolean needsSession, int bufferSize, boolean authFlush) | Метод вызывается для инициализации объекта PageContext, чтобы его можно было использовать в классе реализации JSP для обслуживания входящих запросов и ответов в методе jspService. Вызов метода осуществляется процессором JSP |
JspWriter | popBody() | Возвращает предыдущий объект out класса JspWriter, который был сохранен в соответствующем методе pushBody(), а затем обновляет значение атрибута out в пространстве имен атрибутов PageContext с областью видимости, равной странице |
BodyContent | pushBody() | Возвращает новый объект BodyContent, сохраняет текущий объект out класса JspWriter и обновляет значение атрибута out в пространстве имен атрибутов PageContext с областью видимости, равной странице |
void | release() | Восстанавливает исходное состояние объекта PageContext, чтобы он мог быть повторно использован. Вызов этого метода осуществляется процессором JSP |
Таблица А.25. Константы, определенные в классе PageContext
Тип |
Имя |
Описание |
String | APPLICATION | Имя, используемое для хранения объекта класса Servl etContext в таблице имен PageContext |
int | APPLICATION_SCOPE | Область видимости — приложение: ссылка в классе Servl etContext остается доступной, пока приложение не будет запущено заново |
String | CONFIG | Имя, используемое для хранения объекта класса Servl etContext в таблице имен PageContext |
String | EXCEPTION | Имя, используемое для хранения не перехваченного исключения |
Stri ng | OUT | Имя, используемое для хранения текущего объекта класса JspWriter в таблице имен PageContext |
String | PAGE | Имя, используемое для хранения объекта класса Servlet в таблице имен PageContext |
int | PAGE_SCOPE | Область видимости — страница (задается по умолчанию): ссылка остается доступной в данном классе PageContext до окончания выполнения метода serviceO сервлета |
String | PAGECONTEXT | Имя, используемое для хранения объекта класса PageContext в его собственной таблице имен |
String | REQUEST | Имя, используемое для хранения объекта класса ServletRequest в таблице имен PageContext |
int | REQUEST_SCOPE | Область видимости — запрос: ссылка остается доступной в объекте ServletRequest, связанном сданным сервлетом, пока не будет выполнен текущий запрос |
String | RESPONSE | Имя, используемое для хранения объекта класса ServletResponse в таблице имен PageContext |
String | SESSION | Имя, используемое для хранения объекта класса HttpSession в таблице имен PageContext |
int | SESSIONJCOPE | Область видимости — сеанс (только в том случае, если страница участвует в сеансе): ссылка остается доступной в объекте HttpSession (если он существует), связанном с сервлетом, пока объект HttpSession не станет недействительным |