|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
javax.servlet.jsp.tagext
|
Поля, унаследованные из класса javax.servlet.jsp.JspWriter |
autoFlush,
bufferSize,
DEFAULT_BUFFER,
NO_BUFFER,
UNBOUNDED_BUFFER
|
Поля, унаследованные из класса java.io.Writer |
lock
|
Конструктор. Резюме. | |
protected
|
BodyContent
(JspWriter e)
Protected-конструктор. |
Метод. Резюме. | |
void
|
clearBody
()
Зачищает тело/body без вызова исключений. |
void
|
flush
()
Переопределил flush(), поэтому это недопустимо. |
JspWriter
|
getEnclosingWriter
()
Получает содержащий JspWriter. |
abstract java.io.Reader
|
getReader
()
Возвращает значение данного BodyContent'а как Reader. |
abstract java.lang.String
|
getString
()
Возвращает значение BodyContent'а как String. |
abstract void
|
writeOut
(java.io.Writer out)
Записывает содержимое данного BodyContent'а в Writer. |
Методы, унаследованные из класса javax.servlet.jsp.JspWriter |
clear,
clearBuffer,
close,
getBufferSize,
getRemaining,
isAutoFlush,
newLine,
print,
print,
print,
print,
print,
print,
print,
print,
print,
println,
println,
println,
println,
println,
println,
println,
println,
println,
println
|
Методы, унаследованные из класса java.io.Writer |
write,
write,
write,
write,
write
|
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Конструктор. Детали. |
protected BodyContent(JspWriter e)
Метод. Детали. |
public void flush() throws java.io.IOException
Недопустимо очищать BodyContent, поскольку позади него нет фонового потока.
public void clearBody()
public abstract java.io.Reader getReader()
public abstract java.lang.String getString()
public abstract void writeOut(java.io.Writer out) throws java.io.IOException
out
- writer, в который помещается
содержимое данного вычисления тела.public JspWriter getEnclosingWriter()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
Интерфейс BodyTag расширяет IterationTag путём определения дополнительных методов, которые дают обработчику тэга возможность манипулировать содержимым, вычисляя его тело.
Обработчик тэга отвечает за манипуляции с содержимым тела. Например, обработчик тэга может взять содержимое тела, конвертировать его в String с помощью метода bodyContent.getString и затем использовать его (содержимое). Ил обработчик тэга может взять содержимое тела и записать его в содержащий JspWriter, используя метод bodyContent.writeOut.
Обработчик тэга, реализующий BodyTag, рассматривается как обработчик, реализующий IterationTag, за исключением того, что метод doStartTag может возвратить SKIP_BODY, EVAL_BODY_INCLUDE или EVAL_BODY_BUFFERED.
Если возвращено EVAL_BODY_INCLUDE, вычисление происходит, как в IterationTag.
Если возвращено EVAL_BODY_BUFFERED, будет создан BodyContent-объект (кодом, сгенерированным JSP-компилятором) для захвата вычисления тела. Код, сгенерированный JSP-компилятором, получает BodyContent-объект с помощью вызова метода pushBody текущего pageContext'а, который дополнительно сохраняет предыдущее значение out. Компилятор страницы возвращает этот объект через вызов метода popBody класса PageContext; этот вызов также восстанавливает значение out.
Этот интерфейс предоставляет одно новое свойство с setter-методом один новый метод акции.
Свойства
Имеется новое свойство, bodyContent, для получения BodyContent-объекта, в котором объект реализации JSP-страницы будет размещать результат вычисления (и повторного вычисления, если нужно) тела. Setter-метод (setBodyContent) будет вызываться только в том случае, если doStartTag() возвращает EVAL_BODY_BUFFERED.
Методы
В дополнение к setter-методу для свойства bodyContent имеется новый метод акции: doInitBody(), который вызывается сразу после setBodyContent() и перед вычислением тела. Этот метод будет вызываться только в том случае, если doStartTag() возвращает EVAL_BODY_BUFFERED.
Жизненный цикл
Детали жизненного цикла показаны на диаграмме переноса. Исключения, вызываемые при вычислении doStartTag(), setBodyContent(), doInitBody(), BODY, doAfterBody(), прерывают выполнение и помещаются на верх стэка, если только обработчик тэга не реализует интерфейс TryCatchFinally; см. детали об этом интерфейсе.
Пустая и Непустая Акция
Если TagLibraryDescriptor-файл указывает, что акция обязана всегда иметь пустую акцию, через вхождение <body-content> - "empty", то метод doStartTag() обязан возвратить SKIP_BODY. В ином случае, метод doStartTag() может возвратить SKIP_BODY, EVAL_BODY_INCLUDE или EVAL_BODY_BUFFERED.
Если возвращено SKIP_BODY, тело не вычисляется и вызывается doEndTag().
Если возвращено EVAL_BODY_INCLUDE, setBodyContent() не вызывается, doInitBody() не вызывается, тело вычисляется и "передаётся/passed through" текущему out, doAfterBody() вызывается, а затем, после 0 или более итераций, вызывается doEndTag().
Если возвращено EVAL_BODY_BUFFERED, вызывается setBodyContent(), вызывается doInitBody(), тело вычисляется, вызывается doAfterBody(), а затем, после 0 или более итераций, вызывается doEndTag().
Поле. Резюме. | |
static int
|
EVAL_BODY_BUFFERED
Запрашивается создание нового буфера, BodyContent, в котором вычисляется тело этого тэга. |
static int
|
EVAL_BODY_TAG
Не рекомендуется. Как и в Java JSP API 1.2, использовать BodyTag.EVAL_BODY_BUFFERED или IterationTag.EVAL_BODY_AGAIN. |
Поля, унаследованные из класса javax.servlet.jsp.tagext.IterationTag |
EVAL_BODY_AGAIN
|
Поля, унаследованные из класса javax.servlet.jsp.tagext.Tag |
EVAL_BODY_INCLUDE,
EVAL_PAGE,
SKIP_BODY,
SKIP_PAGE
|
Метод. Резюме. | |
void
|
doInitBody
()
Подготавливает вычисление тела. |
void
|
setBodyContent
(BodyContent b)
Устанавливает свойство bodyContent. |
Методы, унаследованные из интерфейса javax.servlet.jsp.tagext.IterationTag |
doAfterBody
|
Методы, унаследованные из интерфейса javax.servlet.jsp.tagext.Tag |
doEndTag,
doStartTag,
getParent,
release,
setPageContext,
setParent
|
Поле. Детали. |
public static final int EVAL_BODY_TAG
public static final int EVAL_BODY_BUFFERED
Метод. Детали. |
public void setBodyContent(BodyContent b)
Если setBodyContent вызывается, значение неявного объекта out уже было изменено в pageContext-объекте. Передаваемый BodyContent-объект не будет содержать в себе данных, но может быть использован повторно (и зачищен) после некоторого предыдущего вызова.
BodyContent-объект является доступным и имеет соответствующее содержимое до момента сразу после вызова метода doEndTag - в этом случае он может быть снова использован повторно.
b
- BodyContentpublic void doInitBody() throws JspException
JSP-контейнер будет ресинхронизировать любые значения переменных, которые обозначены как таковые в TagExtraInfo, после вызова doInitBody().
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.TagSupport | +--javax.servlet.jsp.tagext.BodyTagSupport
Базовый класс для определения обработчиков тэгов, реализующих BodyTag.
Класс BodyTagSupport реализует интерфейс BodyTag и добавляет несколько удобных методов, включая getter-методы для свойства bodyContent и методы для получения предыдущего out JspWriter.
Многие обработчики тэгов расширяют BodyTagSupport и лишь переопределяют несколько методы.
Поле. Резюме. | |
protected BodyContent
|
bodyContent
|
Поля, унаследованные из класса javax.servlet.jsp.tagext.TagSupport |
id,
pageContext
|
Конструктор. Резюме. | |
BodyTagSupport
()
Конструктор по умолчанию, все подклассы должны только определить public-конструктор с той же подписью и вызвать конструктор суперкласса. |
Метод. Резюме. | |
int
|
doAfterBody
()
После обсчёта тела: повторно не вычислять и продолжать обсчёт страницы. |
int
|
doEndTag
()
Процессинг по умолчанию конечного тэга, возвращающего EVAL_PAGE. |
void
|
doInitBody
()
Подготавливает к вычислению тела сразу перед первым вычислением тела: нет акции. |
int
|
doStartTag
()
Процессинг по умолчанию начального тэга, возвращающего EVAL_BODY_BUFFERED. |
BodyContent
|
getBodyContent
()
Получить текущий bodyContent. |
JspWriter
|
getPreviousOut
()
Получить окружающий (содержащий) out JspWriter. |
void
|
release
()
Освободить статус. |
void
|
setBodyContent
(BodyContent b)
Подготавливает к вычислению тела: берёт bodyContent. |
Методы, унаследованные из класса javax.servlet.jsp.tagext.TagSupport |
findAncestorWithClass,
getId,
getParent,
getValue,
getValues,
removeValue,
setId,
setPageContext,
setParent,
setValue
|
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Поле. Детали. |
protected BodyContent bodyContent
Конструктор. Детали. |
public BodyTagSupport()
Метод. Детали. |
public int doStartTag() throws JspException
public int doEndTag() throws JspException
public void setBodyContent(BodyContent b)
b
- BodyContentpublic void doInitBody() throws JspException
public int doAfterBody() throws JspException
public void release()
public BodyContent getBodyContent()
public JspWriter getPreviousOut()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
Интерфейс HttpJspPage описывает взаимодействие, которое Класс Реализации JSP-Страницы обязан выполнять при использовании протокола HTTP.
Поведение идентично JspPage, за исключением подписи метода _jspService, который теперь выражается в системе типов Java и включён в интерфейс явно.
JspPage
Метод. Резюме. | |
void
|
_jspService
(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Метод _jspService() соответствует телу JSP-страницы. |
Методы, унаследованные от интерфейса javax.servlet.jsp.JspPage |
jspDestroy,
jspInit
|
Методы, унаследованные от интерфейса javax.servlet.Servlet |
destroy,
getServletConfig,
getServletInfo,
init,
service
|
Метод. Детали. |
public void _jspService(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException
Если суперкласс специфицирован с использованием атрибута extends, этот
суперкласс может избрать выполнение некоторых акций в своём методе service() до
или после вызова метода _jspService().
См. использование атрибута extends в главе JSP_Engine/Машина спецификации JSP.
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
Интерфейс IterationTag расширяет Tag, определяя один дополнительный метод, управляющий повторяющимися вычислениями тела.
Обработчик тэга, реализующий IterationTag, рассматривается как обработчик,
реализующий Tag, с учётом методов doStartTag() и doEndTag().
IterationTag предоставляет новый метод: doAfterBody()
.
Метод doAfterBody() вызывается после каждого обсчёта тела для управления
повторными вычислениями тела. Если doAfterBody()
возвращает IterationTag.EVAL_BODY_AGAIN, то тело будет вычисляться ещё раз.
Если doAfterBody() возвращает Tag.SKIP_BODY, тело будет пропущено, и вместо
этого будет вычислен doEndTag().
Свойства
Нет новых свойств, дополняющих свойства Tag'а.
Методы
Есть один новый метод: doAfterBody().
Жизненный цикл
Детали жизненного цикла показаны на диаграмме. Исключения, вызываемые в процессе вычисления doStartTag(), BODY и doAfterBody() прерывают выполнение и помещаются на верх стэка, если только обработчик тэга не реализует интерфейс TryCatchFinally; см. детали об этом интерфейсе.
Пустая и Непустая Акция
Если TagLibraryDescriptor-файл указывает, что акция всегда обязана иметь пустую акцию, через вхождение <body-content> - "empty", то метод doStartTag() обязан возвратить SKIP_BODY. Иначе, метод doStartTag() может возвратить SKIP_BODY или EVAL_BODY_INCLUDE.
Если возвращено SKIP_BODY, тело не вычисляется и вызывается doEndTag().
Если возвращено EVAL_BODY_INCLUDE, тело вычисляется и "передаётся" текущему out, затем вызывается doAfterBody() и, после 0 или более итераций, вызывается doEndTag().
Поле. Резюме. | |
static int
|
EVAL_BODY_AGAIN
Запрос на вычисление тела. |
Поля, унаследованные из класса javax.servlet.jsp.tagext.Tag |
EVAL_BODY_INCLUDE,
EVAL_PAGE,
SKIP_BODY,
SKIP_PAGE
|
Метод. Резюме. | |
int
|
doAfterBody
()
Производит (повторное) вычисление тела. |
Методы, унаследованные из интерфейса javax.servlet.jsp.tagext.Tag |
doEndTag,
doStartTag,
getParent,
release,
setPageContext,
setParent
|
Поле. Детали. |
public static final int EVAL_BODY_AGAIN
Метод. Детали. |
public int doAfterBody() throws JspException
Если doAfterBody возвращает EVAL_BODY_AGAIN, происходит новое вычисление тела (с
последующим новым вызовом doAfterBody).
Если doAfterBody возвращает SKIP_BODY, больше вычисление тела не производится,
значение out будет восстановлено методом popBody в pageContext и будет затем
вызван doEndTag.
Повторные вызовы метода могут привести к различным действиям, поскольку могут происходить изменения разделяемого статуса, или из-за внешних вычислений.
JSP-контейнер будет ресинхронизировать любые значения переменных, которые обозначены как таковые в TagExtraInfo, после вызова doAfterBody().
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЯ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.JspEngineInfo
JspEngineInfo это абстрактный класс, предоставляющий информацию о текущей JSP-машине.
Конструктор. Резюме. | |
JspEngineInfo
()
|
Метод.Резюме. | |
abstract java.lang.String
|
getSpecificationVersion
()
Возвращает номер версии спецификации JSP, которая поддерживается данной JSP-машиной. |
Методы, унаследованные от класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Конструктор. Детали. |
public JspEngineInfo()
Метод. Детали. |
public abstract java.lang.String getSpecificationVersion()
Спецификация номера версии состоит из положительных десятичных целых чисел, разделённых точками ".", например, "2.0" или "1.2.3.4.5.6.7". Это позволяет использовать расширяемый номер для обозначения major, minor, micro и др. версий. Номер версии обязан начинаться с цифры.
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЯ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--java.lang.Throwable | +--java.lang.Exception | +--javax.servlet.jsp.JspException
Общее исключение, известное JSP-машине; неотловленное JspExceptions приводит к вызову механизма errorpage.
Конструктор. Резюме. | |
JspException
()
Конструирует JspException. |
|
JspException
(java.lang.String msg)
Конструирует новое JSP-исключение со специфицированным сообщением. |
|
JspException
(java.lang.String message,
java.lang.Throwable rootCause)
Конструирует новое JSP-исключение, когда JSP нужно вызывать исключение, и включает сообщение об "основной причине" исключения, которая конфликтует с нормальным ходом процесса, включая сообщение описания. |
|
JspException
(java.lang.Throwable rootCause)
Конструирует новое JSP-исключение, когда JSP нужно вызывать исключение, и включает сообщение об "основной причине" исключения, которая конфликтует с нормальным ходом процесса. |
Метод. Резюме. | |
java.lang.Throwable
|
getRootCause
()
Возвращает исключение, вызвавшее это JSP-исключение. |
Методы, унаследованные от класса java.lang.Throwable |
fillInStackTrace,
getLocalizedMessage,
getMessage,
printStackTrace,
printStackTrace,
printStackTrace,
toString
|
Методы, унаследованные от класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait
|
Конструктор. Детали. |
public JspException()
public JspException(java.lang.String msg)
msg
- String
, специфицирующая
текст сообщения исключения.public JspException(java.lang.String message, java.lang.Throwable rootCause)
message
- String
, содержащая
текст сообщения исключения.rootCause
- исключение Throwable
,
причина которого конфликтует с нормальной работой сервлета, делая необходимым
вызов данного исключения сервлета.public JspException(java.lang.Throwable rootCause)
Этот метод вызывает метод getLocalizedMessage
в исключении Throwable
для получения локализованного сообщения исключения. При создании подкласса от JspException
этот метод может быть переопределён для создания сообщения исключения,
разработанного для конкретного места (язык, страна...).
rootCause
- исключение Throwable
,
причина которого конфликтует с нормальной работой сервлета, делая необходимым
вызов данного исключения сервлета.Метод. Детали. |
public java.lang.Throwable getRootCause()
Throwable
, вызвавшее данное JSP-исключение.
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.JspFactory
JspFactory это абстрактный класс, определяющий несколько "фабричных"/factory методов, доступных JSP-странице на этапе прогона, для создания экземпляров различных интерфейсов и классов, используемых для поддержки реализации JSP.
Соответствующая требованиям реализация JSP-Машины будет в процессе своей
инициализации инстанциировать зависящий от реализации подкласс этого класса и
сделает его глобально доступным для использования классами реализации JSP
посредством регистрации экземпляра, созданного данным классом с помощью
static-метода setDefaultFactory()
.
Классы PageContext и JspEngineInfo являются единственными зависящими от реализации классами, которые могут создаваться только в фактории.
Объекты JspFactory не должны использоваться авторами JSP-страниц.
Конструктор. Резюме. | |
JspFactory
()
|
Метод. Резюме. | |
static JspFactory
|
getDefaultFactory
()
|
abstract JspEngineInfo
|
getEngineInfo
()
вызывается для получения специфической для данной реализации информации о текущей JSP-машине. |
abstract PageContext
|
getPageContext
(javax.servlet.Servlet servlet,
javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
java.lang.String errorPageURL,
boolean needsSession,
int buffer,
boolean autoflush)
получает экземпляр зависящего от реализации абстрактного класса javax.servlet.jsp.PageContext для вызова Servlet и текущего обслуживания запроса и ответа. |
abstract void
|
releasePageContext
(PageContext pc)
вызывается для освобождения ранее размещённого объекта PageContext. |
static void
|
setDefaultFactory
(JspFactory deflt)
установить факторию по умолчанию для данной реализации. |
Методы, унаследованные от класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Конструктор. Детали. |
public JspFactory()
Метод. Детали. |
public static void setDefaultFactory(JspFactory deflt)
установить факторию по умолчанию для данной реализации.
Только среда прогона программ JSP-Машина может вызывать этот метод.
default
- реализация фактории по
умолчанию.public static JspFactory getDefaultFactory()
public abstract PageContext getPageContext(javax.servlet.Servlet servlet, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, java.lang.String errorPageURL, boolean needsSession, int buffer, boolean autoflush)
получает экземпляр зависящего от реализации абстрактного класса javax.servlet.jsp.PageContext для вызова Servlet и текущего обслуживания запроса и ответа.
Этот метод обычно вызывается до процессинга метода _jspService() класса реализации JSP, чтобы получить объект PageContext для обрабатываемого запроса.
Вызов этого метода должен приводить к вызову метода PageContext.initialize().
Возвращаемый PageContext инициализируется соответствующим образом.
Все PageContext-объекты, полученные с помощью данного метода, должны уничтожаться через вызов releasePageContext().
servlet
- запрашивающий сервлетconfig
- ServletConfig
для запрашивающего Servlet'аrequest
-
текущий запрос/request, обслуживаемый сервлетомresponse
-
текущий ответ/response, обслуживаемый сервлетомerrorPageURL
- URL
страницы ошибок для запрашивающей JSP, или nullneedsSession
- true,
если JSP участвует в сессииbuffer
- размер буфера в байтах, PageContext.NO_BUFFER
- если буфера нет,
PageContext.DEFAULT_BUFFER - если буфер по умолчанию для данной
реализацииautoflush
- должен ли буфер автоматически очищаться в
потоке вывода, или вызывать IOException?PageContext
public abstract void releasePageContext(PageContext pc)
вызывается для уничтожения/освобождения ранее размещённого PageContext-объекта.
результатом является вызов PageContext.release().
Этот метод должен вызываться до возвращения из метода _jspService() класса
реализации JSP.
pc
- PageContext, полученный ранее методом getPageContext()public abstract JspEngineInfo getEngineInfo()
вызывается для получения специфической для данной реализации информации о текущей JSP-машине.
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
Интерфейс JspPage описывает общее взаимодействие, которое класс Реализации JSP-Страницы обязан выполнять; страницы, использующие протокол HTTP, описаны интерфейсом HttpJspPage.
Методы Два плюс Один/Two plus One
Этот интерфейс определяет протокол с 3 методами; только два из них: jspInit() и jspDestroy() являются частью данного интерфейса, так как подпись/signature третьего метода: _jspService() зависит от специфики используемого протокола и не может быть выражена общим способом в Java.
Класс, реализующий этот интерфейс, отвечает за вызов вышеуказанных методов в подходящее время на базе вызовов соответствующих Servlet-базирующихся методов.
Методы jspInit() и jspDestroy() могут определяться автором JSP, но метод _jspService() определяется автоматически JSP-процессором на базе содержимого JSP-страницы.
_jspService()
Метод _jspService() соответствует телу/body JSP-страницы. Этот метод определяется автоматически JSP-контейнером и никогда не должен определяться автором JSP.
Если суперкласс специфицируется с использованием атрибута extends, этот суперкласс
может избрать выполнение некоторых акций в методе service() до или после вызова
метода _jspService().
См. использование атрибута extends в главе JSP_Машина спецификации JSP.
Специфика подписи/signature зависит от протокола, поддерживаемого JSP-страницей.
public void _jspService(ServletRequestSubtype request, ServletResponseSubtype response) throws ServletException, IOException;
Метод. Резюме. | |
void
|
jspDestroy
()
Метод jspDestroy() вызывается при уничтожении JSP-страницы. |
void
|
jspInit
()
Метод jspInit() вызывается при инициализации JSP-страницы. |
Методы, унаследованные от интерфейса javax.servlet.Servlet |
destroy,
getServletConfig,
getServletInfo,
init,
service
|
Метод. Детали. |
public void jspInit()
public void jspDestroy()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--java.lang.Throwable | +--java.lang.Exception | +--javax.servlet.jsp.JspException | +--javax.servlet.jsp.JspTagException
Исключение, используемое Обработчиком Тэга для указания на непреодолимую ошибку. Эта ошибка отлавливается на верхнем уровне JSP-страницы и выводит страницу об ошибках.
Конструктор. Резюме. | |
JspTagException
()
Нет сообщения. |
|
JspTagException
(java.lang.String msg)
Конструктор с сообщением.. |
Методы, унаследованные от класса javax.servlet.jsp.JspException |
getRootCause
|
Методы, унаследованные от класса java.lang.Throwable |
fillInStackTrace,
getLocalizedMessage,
getMessage,
printStackTrace,
printStackTrace,
printStackTrace,
toString
|
Методы, унаследованные от класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait
|
Конструктор. Детали. |
public JspTagException(java.lang.String msg)
public JspTagException()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--java.io.Writer | +--javax.servlet.jsp.JspWriter
Акции и шаблонные данные на JSP-странице записываются с использованием JspWriter-объекта, на который ссылаются через неявную переменную out, инициализируемую автоматически, через использование методов в PageContext-объекте.
Этот абстрактный класс эмулирует некоторую функциональность классов java.io.BufferedWriter и java.io.PrintWriter, однако отличие в том, что он взывает java.io.IOException из методов print, в то время как PrintWriter этого не делает.
Буферизация
Начальный/initial JspWriter-объект ассоциируется с PrintWriter-объектом ServletResponse'а способом, зависящим от того, буферизуется страница или нет. Если страница буферизуется, вывод, записываемый в этот JspWriter-объект, будет записываться непосредственно через PrintWriter, который, если необходимо, будет создаваться путём вызова метода getWriter() в объекте response. Но если страница буферизуется, PrintWriter-объект не будет создаваться, пока буфер не очистится и операции типа setContentType() являются законными. Поскольку такая гибкость значительно упрощает программирование, буферизация в JSP-страницах выполняется по умолчанию.
Буферизация затрагивает вопрос: что делать, если буфер заполнен?
Есть два подхода к решению этой проблемы:
Оба подхода являются верными, и, соответственно, оба поддерживаются JSP-технологией. Поведение страницы контролируется атрибутом autoFlush, который по умолчанию - true. В общем, JSP-страницы, которым необходима гарантия корректности и полноты данных, высылаемых клиенту, могут установить атрибут autoFlush в false, что обычно делается в случае, если клиентом является само приложение. С другой стороны, JSP-страницы, отсылающие данные клиенту, могут даже после частичного конструирования установить атрибут autoFlush в true; что делается тогда, когда данные сразу выводятся через браузер. Каждое приложение действует в соответствии со своими потребностями.
Альтернативным было снятие ограничений на размер буфера; но это имело тот недостаток, что вычисления на этапе прогона могли поглотить неограниченное количество ресурсов ОС.
Неявная переменная "out" класса реализации JSP имеет этот тип. Если директива page избирает autoflush="true", тогда все операции I/O (ввода-вывода) этого класса автоматически очищают содержимое буфера, если условие overflow/переполнение могло бы возникнуть при выполнении текущей операции без очистки. Если autoflush="false", тогда все операции I/O (ввода-вывода) этого класса будут вызывать исключение IOException, если при выполнении текущей операции приводит к условию overflow/переполнения буфера.
Writer
,
java.io.BufferedWriter
,
PrintWriter
Поле. Резюме. | |
protected boolean
|
autoFlush
|
protected int
|
bufferSize
|
static int
|
DEFAULT_BUFFER
константа, указывающая, что Writer буферизуется и использует размер буфера по умолчанию для данной реализации. |
static int
|
NO_BUFFER
константа, указывающая, что Writer не буферизует вывод. |
static int
|
UNBOUNDED_BUFFER
константа, указывающая, что Writer буферизуется и размер буфера не ограничен; это используется в BodyContent. |
Поля, унаследованные от класса java.io.Writer |
lock
|
Конструктор. Резюме. | |
protected
|
JspWriter
(int bufferSize,
boolean autoFlush)
protected-конструктор. |
Метод. Резюме. | |
abstract void
|
clear
()
Очищает содержимое буфера. |
abstract void
|
clearBuffer
()
Очищает текущее содержимое буфера. |
abstract void
|
close
()
Закрывает поток, предварительно очистив его. Этот метод не должен вызываться явно для начального/initial JspWriter'а, так как код, генерируемый JSP-контейнером, будет автоматически включать вызов close(). |
abstract void
|
flush
()
Очищает поток. |
int
|
getBufferSize
()
Этот метод возвращает размер буфера, используемого JspWriter'ом. |
abstract int
|
getRemaining
()
Этот метод возвращает количество неиспользуемых байтов буфера. |
boolean
|
isAutoFlush
()
Этот метод указывает, очищается ли JspWriter автоматически. |
abstract void
|
newLine
()
Записывает символы новой строки. |
abstract void
|
print
(boolean b)
Печатает булево значение. |
abstract void
|
print
(char c)
Печатает символ. |
abstract void
|
print
(char[] s)
Печатает массив символов. |
abstract void
|
print
(double d)
Печатает число с плавающей точкой двойной точности. |
abstract void
|
print
(float f)
Печатает число с плавающей точкой. |
abstract void
|
print
(int i)
Печатает целое число. |
abstract void
|
print
(long l)
Печатает длинное целое число. |
abstract void
|
print
(java.lang.Object obj)
Печатает объект. |
abstract void
|
print
(java.lang.String s)
Печатает строку. |
abstract void
|
println
()
Заканчивает текущую строку печатью символов новой строки. |
abstract void
|
println
(boolean x)
Печатает булево значение и затем оканчивает строку. |
abstract void
|
println
(char x)
Печатает символ и затем оканчивает строку. |
abstract void
|
println
(char[] x)
Печатает массив символов и затем оканчивает строку. |
abstract void
|
println
(double x)
Печатает число с плавающей точкой двойной точности и затем оканчивает строку. |
abstract void
|
println
(float x)
Печатает число с плавающей точкой и затем оканчивает строку. |
abstract void
|
println
(int x)
Печатает целое число и затем оканчивает строку. |
abstract void
|
println
(long x)
Печатает длинное целое число и затем оканчивает строку. |
abstract void
|
println
(java.lang.Object x)
Печатает Object и затем оканчивает строку. |
abstract void
|
println
(java.lang.String x)
Печатает String и затем оканчивает строку. |
Методы, унаследованные от класса java.io.Writer |
write,
write,
write,
write,
write
|
Методы, унаследованные от класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Поле. Детали. |
public static final int NO_BUFFER
public static final int DEFAULT_BUFFER
public static final int UNBOUNDED_BUFFER
protected int bufferSize
protected boolean autoFlush
Конструктор. Детали. |
protected JspWriter(int bufferSize, boolean autoFlush)
Метод. Детали. |
public abstract void newLine() throws java.io.IOException
public abstract void print(boolean b) throws java.io.IOException
String.valueOf(boolean)
,
транслируется в байты в соответствии с кодировкой символов по умолчанию на
данной платформе, и эти байты записываются точно в манере метода Writer.write(int)
.b
- печатаемое boolean
.public abstract void print(char c) throws java.io.IOException
Writer.write(int)
.c
- печатаемый char
.public abstract void print(int i) throws java.io.IOException
String.valueOf(int)
,
транслируется в байты в соответствии с кодировкой символов по умолчанию на
данной платформе, и эти байты записываются точно в манере метода Writer.write(int)
.i
- печатаемое int
.java.lang.Integer#toString(int)
public abstract void print(long l) throws java.io.IOException
String.valueOf(long)
,
транслируется в байты в соответствии с кодировкой символов по умолчанию на
данной платформе, и эти байты записываются точно в манере метода Writer.write(int)
.l
- печатаемое long
.java.lang.Long#toString(long)
public abstract void print(float f) throws java.io.IOException
String.valueOf(float)
,
транслируется в байты в соответствии с кодировкой символов по умолчанию на
данной платформе, и эти байты записываются точно в манере метода Writer.write(int)
.f
- печатаемое float
.java.lang.Float#toString(float)
public abstract void print(double d) throws java.io.IOException
String.valueOf(double)
, транслируется в байты в
соответствии с кодировкой символов по умолчанию на данной платформе, и эти байты
записываются точно в манере метода Writer.write(int)
.d
- печатаемое double
.java.lang.Double#toString(double)
public abstract void print(char[] s) throws java.io.IOException
Writer.write(int)
.s
- массив печатаемых chars.s
равно null
public abstract void print(java.lang.String s) throws java.io.IOException
null
, тогда печатается строка
"null"
. Иначе, символы строки конвертируются в байты в
соответствии с кодировкой символов по умолчанию на данной платформе, и эти байты
записываются точно в манере метода Writer.write(int)
.s
- печатаемая String
.public abstract void print(java.lang.Object obj) throws java.io.IOException
String.valueOf(Object)
,
транслируется в байты в соответствии с кодировкой символов по умолчанию на
данной платформе, и эти байты записываются точно в манере метода Writer.write(int
.obj
- печатаемый Object
.Object.toString()
public abstract void println() throws java.io.IOException
line.separator
, и это не обязательно один символ новой строки ('\n'
).public abstract void println(boolean x) throws java.io.IOException
print(boolean)
, а
затем -
println()
.public abstract void println(char x) throws java.io.IOException
print(char)
, а затем -
println()
.public abstract void println(int x) throws java.io.IOException
print(int)
, а
затем -
println()
.public abstract void println(long x) throws java.io.IOException
print(long)
,
а затем -
println()
.public abstract void println(float x) throws java.io.IOException
print(float)
,
а затем -
println()
.public abstract void println(double x) throws java.io.IOException
print(double)
,
а затем -
println()
.public abstract void println(char[] x) throws java.io.IOException
print(
char[])
,
а затем -
println()
.public abstract void println(java.lang.String x) throws java.io.IOException
print(String)
,
а затем -
println()
.public abstract void println(java.lang.Object x) throws java.io.IOException
print(Object)
,
а затем -
println()
.public abstract void clear() throws java.io.IOException
public abstract void clearBuffer() throws java.io.IOException
public abstract void flush() throws java.io.IOException
Этот метод может быть вызван неявно, если размер буфера превышен.
После того как поток был закрыт, последующие вызовы методов write() или flush() приводят к вызову исключения IOException.
public abstract void close() throws java.io.IOException
Этот метод не должен вызываться явно для начального/initial JspWriter'а, так как код, генерируемый JSP-контейнером, будет автоматически включать вызов close().
Закрытие уже закрытого потока, в отличие от flush(), не даст никакого эффекта.
public int getBufferSize()
public abstract int getRemaining()
public boolean isAutoFlush()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
Интерфейсы
HttpJspPage JspPage |
Классы
JspEngineInfo JspFactory JspWriter PageContext |
Исключения
JspException JspTagException |
|
|||||||||
ПРЕДЫДУЩИЙ ПАКЕТ СЛЕДУЮЩИЙ ПАКЕТ | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
См.:
Описание
Интерфейс. Резюме. | |
HttpJspPage | Интерфейс HttpJspPage описывает взаимодействие, которое Класс Реализации JSP-Страницы обязан выполнять при использовании протокола HTTP. |
JspPage | Интерфейс JspPage описывает типовое взаимодействие которое Класс Реализации JSP-Страницы обязан выполнять; страницы, использующие протокол HTTP, описываются интерфейсом HttpJspPage. |
Класс. Резюме. | |
JspEngineInfo | JspEngineInfo это абстрактный класс, предоставляющий информацию о текущей JSP-машине. |
JspFactory | JspFactory это абстрактный класс, определяющий несколько методов фактории, доступных JSP-странице на этапе прогона, для целей создания экземпляров различных интерфейсов и классов, используемых для поддержки реализации JSP. |
JspWriter | Акции и шаблонные данные в JSP-странице, написанные с использованием JspWriter-объекта, на который ссылаются через неявную переменную out, которая инициализируется автоматически через использование методов в PageContext-объекте. |
PageContext | PageContext-экземпляр, предоставляющий доступ ко всем пространствам имён, ассоциированным с JSP-страницей, к различным атрибутам страницы, а также слой поверх деталей реализации. |
Исключение. Резюме. | |
JspException | Общее исключение, известное JSP-машине; неотловленное JspExceptions будет приводить к вызову механизмов errorpage. |
JspTagException | Исключение, используемое Обработчиком Тэга для указания на непоправимую ошибку. |
|
|||||||||
ПРЕДЫДУЩИЙ ПАКЕТ СЛЕДУЮЩИЙ ПАКЕТ | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
Интерфейс простого обработчика тэга, который не манипулирует своим телом. Интерфейс Tag определяет базовый протокол между обработчиком Tag'а и классом реализации JSP-страницы. Определяет жизненный цикл и методы, вызываемые в начальном.
Свойства
Интерфейс Tag специфицирует setter- и getter-методы для основных свойств pageContext и parent.
Объект реализации JSP-страницы вызывает setPageContext и setParent, в указанной последовательности, до вызова doStartTag() или doEndTag().
Методы
Выполняются два главных действия: doStartTag и doEndTag. После того как
соответствующие свойства инициализированы, методы doStartTag и
doEndTag могут быть вызваны в обработчике тэга. Принимается, что между этими
вызовами обработчик тэга поддерживает статус, который обязан быть сохранён.
После вызова doEndTag обработчик тэга доступен для последующих вызовов (и
предполагается, что он сохраняет свои свойства).
Жизненный цикл
Детали жизненного цикла представлены на диаграмме, со следующими комментариями:
После того как выполнены все вызовы обработчика тэга, в нём вызывается
метод release.
После того как метод release
вызван, принимается, что все свойства, включая parent и
pageContext, восстановлены в неспецифицированные значения. Компилятор страницы
гарантирует, что release() будет вызван в обработчике Tag'а
до освобождения обработчика в GC.
Пустая и Непустая Акция
Если TagLibraryDescriptor-файл указывает, что акция должна всегда иметь пустую акцию, посредством вхождения <body-content> - "empty", тогда метод doStartTag() обязан возвращать SKIP_BODY. Иначе, метод doStartTag() может возвратить SKIP_BODY или EVAL_BODY_INCLUDE.
Если возвращено SKIP_BODY, тело, если имеется, не обсчитывается.
Если возвращено EVAL_BODY_INCLUDE, тело обсчитывается и "передаётся" текущему out.
Поле. Резюме. | |
static int
|
EVAL_BODY_INCLUDE
Вычисляет тело в существующем потоке out. |
static int
|
EVAL_PAGE
Продолжить обсчёт страницы. |
static int
|
SKIP_BODY
Пропустить вычисление тела. |
static int
|
SKIP_PAGE
Пропустить остаток страницы. |
Метод. Резюме. | |
int
|
doEndTag
()
Обработать конечный тэг данного экземпляра. |
int
|
doStartTag
()
Обработать начальный тэг данного экземпляра. |
Tag
|
getParent
()
Получить родителя (ближайший содержащий обработчик тэга) данного обработчика тэга. |
void
|
release
()
Вызывается в обработчике Tag'а для освобождения состояния. |
void
|
setPageContext
(PageContext pc)
Устанавливает текущий контекст страницы. |
void
|
setParent
(Tag t)
Устанавливает родителя (ближайший содержащий обработчик тэга) данного обработчика тэга. |
Поле. Детали. |
public static final int SKIP_BODY
public static final int EVAL_BODY_INCLUDE
public static final int SKIP_PAGE
public static final int EVAL_PAGE
Метод. Детали. |
public void setPageContext(PageContext pc)
Это значение *не* восстанавливается/reset методом doEndTag() и обязано быть восстановлено явно реализацией страницы, если изменяется между вызовами doStartTag().
pc
- контекст страницы для данного
обработчика тэга.public void setParent(Tag t)
Это значение *не* восстанавливается/reset методом doEndTag() и обязано быть восстановлено явно реализацией страницы.
t
- родительский тэг/tag или null.public Tag getParent()
Метод getParent() может использоваться для навигации по структуре вложенного обработчика тэга на этапе прогона для кооперации нескольких акций; например, метод findAncestorWithClass() в TagSupport предоставляет удобный способ выполнения этого.
Текущая версия спецификации предоставляет только один формальный способ обозначения рассматриваемого типа обработчика тэга: класс реализации обработчика тэга, описанный в субэлементе tag-class элемента tag. Он расширяется в неформальной манере, давая автору библиотеки тэгов возможность указывать в субэлементе description рассматриваемый тип. Тип должен быть подтипом класса реализации обработчика тэга или void. Это дополнительное ограничение может быть обработано специализированным контейнером, который знает о об этой конкретной библиотеке тэгов, как в случае со стандартной библиотекой тэгов JSP.
public int doStartTag() throws JspException
Метод doStartTag принимает, что свойства pageContext и parent уже установлены. Он также принимает, что любые свойства, экспонированные как атрибуты, также установлены. Если этот метод вызывается, это означает, что тело ещё не обсчитывалось.
Этот метод возвращает Tag.EVAL_BODY_INCLUDE или BodyTag.EVAL_BODY_BUFFERED для указания на то, что тело акции должно быть обсчитано, или SKIP_BODY - для обозначения обратного.
Если Tag возвращает EVAL_BODY_INCLUDE, результат вычисления тела (если оно имеется) включается в текущий "out" JspWriter, как происходит при вызове doEndTag().
BodyTag.EVAL_BODY_BUFFERED является единственным верным значением, если обработчик тэга реализует BodyTag.
JSP-контейнер будет ресинхронизировать любые значения переменных, обозначенных как таковые в TagExtraInfo, после вызова doStartTag().
BodyTag
public int doEndTag() throws JspException
Этот метод будет вызываться после возвращения из doStartTag. Тело акции может или может не быть вычисленным, в зависимости от return-занчения метода doStartTag.
Если этот метод возвращает EVAL_PAGE, остаток страницы продолжает обсчитываться.
Если этот метод возвращает SKIP_PAGE, остаток страницы не обсчитывается и
запрос выполняется.
Если этот запрос был направлен или включён из другой страницы (или Servlet),
выполняется обсчёт только текущей страницы.
JSP-контейнер будет ресинхронизировать любые значения переменных, обозначенных как таковые в TagExtraInfo, после вызова doEndTag().
public void release()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
Интерфейсы
BodyTag IterationTag Tag TryCatchFinally |
Классы
BodyContent BodyTagSupport PageData TagAttributeInfo TagData TagExtraInfo TagInfo TagLibraryInfo TagLibraryValidator TagSupport TagVariableInfo ValidationMessage VariableInfo |
|
|||||||||
ПРЕДЫДУЩИЙ ПАКЕТ СЛЕДУЮЩИЙ ПАКЕТ | ФРЭЙМЫ НЕТ ФРЭЙМОВ |
См.:
Описание
Интерфейс. Резюме. | |
BodyTag | Интерфейс BodyTag расширяет IterationTag путём определения дополнительных методов, позволяющих обработчику тэга манипулировать содержимым, вычисляя его тело. |
IterationTag | Интерфейс IterationTag расширяет Tag путём определения дополнительного метода, управляющего повторными вычислениями его тела. |
Tag | Интерфейс простого обработчика тэга, который не манипулирует его телом. |
TryCatchFinally | Вспомогательный интерфейс для Tag, IterationTag или обработчика тэга BodyTag'а, которым нужны дополнительные возможности для обслуживания ресурсов. |
Класс. Резюме. | |
BodyContent | Инкапсуляция вычисления/обсчёта тела акции, делающая её доступной обработчику тэга. |
BodyTagSupport | Базовый класс для определения обработчиков тэгов, реализующих BodyTag. |
PageData | Информация времени трансляции о JSP-странице. |
TagAttributeInfo | Информация об атрибутах Tag'а, доступная на этапе трансляции. |
TagData | Информация (только на этапе трансляции) пары attribute/value для экземпляра тэга. |
TagExtraInfo | Необязательный/Optional класс, предоставляемый автором библиотеки тэгов, для описания информации времени трансляции, не описанной в TLD. |
TagInfo | Tag-информация для тэга в Tag Library; этот класс инстанциируется из Tag Library Descriptor-файла (TLD) и доступен только на этапе трансляции. |
TagLibraryInfo | Информация времени трансляции, ассоциированная с директивой taglib, и её TLD-файл. |
TagLibraryValidator | Класс проверщика времени трансляции для JSP-страницы. |
TagSupport | Базовый класс для определения новых обработчиков тэгов, реализующих Tag. |
TagVariableInfo | Информация переменной для тэга в Библиотеке Тэгов; этот класс инстанциируется из Tag Library Descriptor-файла (TLD) и доступен только на этапе трансляции. |
ValidationMessage | Проверочное сообщение из TagLibraryValidator'а. |
VariableInfo | Информация переменной скриптинга, созданной/модифицированной тэгом (на этапе прогона). |
Классы и интерфейсы для определения Библиотек Тэгов JavaServer Pages.
Спецификация JavaServer Pages(tm) (JSP) 1.2 предоставляет переносимый механизм описания библиотек тэгов.
Библиотека тэгов JSP содержит:
Спецификация JSP 1.2 и реализация, на которую имеются ссылки, содержат простые и довольно сложные примеры акций, определённых с использованием этого механизма. Они находятся на сайте JSP по адресу: http://java.sun.com/products/jsp . Некоторым читателям, возможно, понадобится консультироваться там для получения представления о том, как эти механизмы работают совместно.
|
|||||||||
ПРЕДЫДУЩИЙ ПАКЕТ СЛЕДУЮЩИЙ ПАКЕТ | ФРЭЙМЫ НЕТ ФРЭЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.PageContext
Экземпляр класса PageContext предоставляет доступ ко всем пространствам имён,
ассоциированным с JSP-страницей, к различным атрибутам страницы, а также слой
поверх деталей реализации.
Неявные объекты добавляются к pageContext автоматически.
Класс PageContext
это абстрактный класс, разработанный с
возможностью последующего расширения для предоставления реализаций, в
зависимости от свойств самих же реализаций, в среде соответствующих JSP-машин.
Экземпляр PageContext получается классом реализации JSP через вызов метода
JspFactory.getPageContext(), и освобождается через вызов метода
JspFactory.releasePageContext().
Примеры использования PageContext, JspFactory и других классов в объекте Реализации JSP-Страницы можно найти повсюду.
PageContext имеет особенности, упрощающие работу авторов страниц/компонентов и реализаторов страниц, в том числе:
Методы, Предназначенные для Кода, Генерируемого Контейнером
Некоторые методы предназначены для использования кодом , генерируемым контейнером, а не кодом, написанным авторами JSP-страниц или библиотек тэгов JSP.
Методами, поддерживающими жизненный цикл, являются initialize()
и release()
.
Методы делающие возможным обслуживание вложенных потоков JspWriter'а
для реализации Расширений Тэгов: pushBody()
и popBody()
Методы, Предназначенные для Авторов JSP
Некоторые методы предоставляют универсальный доступ к различным
объектам, представляющим области видимости.
Реализация обязана использовать фундаментальные механизмы Servlet,
соответствующие данной области видимости, так что информация может быть
передана вперёд и назад между Servlet'ами и JSP-страницами.
Методы:
setAttribute()
, getAttribute()
,
findAttribute()
, removeAttribute()
,
getAttributesScope()
и getAttributeNamesInScope()
.
Следующие методы предоставляют удобный доступ к неявным объектам:
getOut()
, getException()
, getPage()
getRequest()
, getResponse()
,
getSession()
, getServletConfig()
и getServletContext()
.
Следующие методы предоставляют поддержку для направления, включения и
обработки ошибок:
forward()
, include()
и handlePageException()
.
Поле. Резюме. | |
static java.lang.String
|
APPLICATION
Имя, используемое для хранения ServletContext в таблице имён PageContext. |
static int
|
APPLICATION_SCOPE
Область видимости - приложение: именованные ссылки работают в ServletContext'е, пока он не будет вызван. |
static java.lang.String
|
CONFIG
Имя, используемое для хранения ServletConfig в таблице имён PageContext. |
static java.lang.String
|
EXCEPTION
Имя, используемое для хранения неотловленного исключения в списке атрибутов ServletRequest'а и в таблице имён PageContext. |
static java.lang.String
|
OUT
Имя, используемое для хранения текущего JspWriter'а в таблице имён PageContext. |
static java.lang.String
|
PAGE
Имя, используемое для хранения Servlet в таблицах имён этого PageContext. |
static int
|
PAGE_SCOPE
Область видимости - страница: (это значение по умолчанию) именованные ссылки работают в этом PageContext'е до возвращения из текущего вызова метода Servlet.service(). |
static java.lang.String
|
PAGECONTEXT
Имя, используемое для хранения этого PageContext'а в его собственной таблице имён. |
static java.lang.String
|
REQUEST
Имя, используемое для хранения ServletRequest'а в таблице имён PageContext. |
static int
|
REQUEST_SCOPE
Область видимости - запрос: именованные ссылки работают из ServletRequest'а, ассоциированного с Servlet'ом, пока выполнение текущего запроса не будет завершено. |
static java.lang.String
|
RESPONSE
Имя, используемое для хранения ServletResponse в таблице имён PageContext'а. |
static java.lang.String
|
SESSION
Имя, используемое для хранения HttpSession в таблице имён PageContext'а. |
static int
|
SESSION_SCOPE
Область видимости - сессия (верно, только если данная страница участвует в сессии): именованные ссылки работают из HttpSession (если имеется), ассоциированного с Servlet'ом, пока HttpSession не будет закрыта. |
Конструктор. Резюме. | |
PageContext
()
|
Метод. Резюме. | |
abstract java.lang.Object
|
findAttribute
(java.lang.String name)
Ищет именованный атрибут в области(-ях) видимости page, request, session (если запущена) и application, в указанном порядке, и возвращает ассоциированное значение или null. |
abstract void
|
forward
(java.lang.String relativeUrlPath)
Этот метод используется для перенаправления текущего ServletRequest'а и ServletResponse'а другому активному компоненту приложения. |
abstract java.lang.Object
|
getAttribute
(java.lang.String name)
Возвращает объект, ассоциированный с именем в области видимости page, или null, если объект не найден. |
abstract java.lang.Object
|
getAttribute
(java.lang.String name,
int scope)
Возвращает объект, ассоциированный с именем в специфицированной области видимости, или null, если объект не найден. |
abstract java.util.Enumeration
|
getAttributeNamesInScope
(int scope)
Перечисляет все атрибуты в данной области видимости. |
abstract int
|
getAttributesScope
(java.lang.String name)
Получит область видимости, в которой определён данный атрибут. |
abstract java.lang.Exception
|
getException
()
Текущее значение объекта исключения (Exception). |
abstract JspWriter
|
getOut
()
Текущее значение объекта out (JspWriter). |
abstract java.lang.Object
|
getPage
()
Текущее значение объекта page (Servlet). |
abstract javax.servlet.ServletRequest
|
getRequest
()
Текущее значение объекта request (ServletRequest). |
abstract javax.servlet.ServletResponse
|
getResponse
()
Текущее значение объекта response (ServletResponse). |
abstract javax.servlet.ServletConfig
|
getServletConfig
()
ServletConfig-экземпляр. |
abstract javax.servlet.ServletContext
|
getServletContext
()
ServletContext-экземпляр. |
abstract javax.servlet.http.HttpSession
|
getSession
()
Текущее значение объекта session (HttpSession). |
abstract void
|
handlePageException
(java.lang.Exception e)
Этот метод предназначен для обработки необработанного исключения уровня "page" путём перенаправления исключения специфицированной для данной JSP-страницы странице ошибок, либо, если ничего не было специфицировано, выполняя некоторое зависящее от реализации действие. |
abstract void
|
handlePageException
(java.lang.Throwable t)
Этот метод идентичен handlePageException(Exception), за исключением того, что он принимает Throwable. |
abstract void
|
include
(java.lang.String relativeUrlPath)
Вызывает обработку специфицированных ресурсов как части текущих ServletRequest и ServletResponse, обрабатываемых вызывающим Thread/потоком. |
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(). |
JspWriter
|
popBody
()
Возвращает "out" предыдущего JspWriter'а, сохраняемый парным pushBody() и обновляет значение атрибута "out" в пространстве имён атрибутов из области видимости page PageConxtext'а. |
BodyContent
|
pushBody
()
Возвращает BodyContent-объект, сохраняет текущий "out" JspWriter и обновляет значение атрибута "out" в пространстве имён атрибутов из области видимости page PageConxtext'а. |
abstract void
|
release
()
Этот метод будет "восстанавливать/reset" начальное состояние PageContext'а, освобождая все ссылки и подготавливая PageContext для возможного использования в последующих вызовах initialize(). |
abstract void
|
removeAttribute
(java.lang.String name)
Удаляет ссылку на объект, ассоциированный с данным именем, просматривая во всех областях видимости в (установленном) порядке просмотра. |
abstract void
|
removeAttribute
(java.lang.String name,
int scope)
Удаляет ссылку на объект, ассоциированный со специфицированным именем в данной области видимости. |
abstract void
|
setAttribute
(java.lang.String name,
java.lang.Object attribute)
Регистрирует имя/name и объект/object, специфицированные семантикой области видимости scope. |
abstract void
|
setAttribute
(java.lang.String name,
java.lang.Object o,
int scope)
Регистрирует имя/name и объект/object, специфицированные семантикой соответствующей области видимости. |
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Поле. Детали. |
public static final int PAGE_SCOPE
public static final int REQUEST_SCOPE
public static final int SESSION_SCOPE
public static final int APPLICATION_SCOPE
public static final java.lang.String PAGE
public static final java.lang.String PAGECONTEXT
public static final java.lang.String REQUEST
public static final java.lang.String RESPONSE
public static final java.lang.String CONFIG
public static final java.lang.String SESSION
public static final java.lang.String OUT
public static final java.lang.String APPLICATION
public static final java.lang.String EXCEPTION
Конструктор. Детали. |
public PageContext()
Метод. Детали. |
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) throws java.io.IOException, java.lang.IllegalStateException, java.lang.IllegalArgumentException
Метод initialize вызывается для инициализации неинициализированного PageContext'а так, что он (РС) может быть использован классом Реализации JSP для обслуживания входящего запроса и ответа внутри метода _jspService().
Этот метод обычно вызывается из JspFactory.getPageContext(), чтобы инициализировать статус.
Этот метод нужен для создания начального JspWriter'а и ассоциирования имени "out'а" в области видимости page с этим вновь созданным объектом.
Этот метод не должен использоваться авторами страниц или библиотек тэгов.
servlet
- Servlet, ассоциированный с
данным PageContext'омrequest
-
текущий запрос в данном Servlet'еresponse
-
текущий ответ для данного Servlet'аerrorPageURL
- значение
атрибута errorpage из директивы page или nullneedsSession
-
значение атрибута session из директивы pagebufferSize
-
значение атрибута buffer из директивы pageautoFlush
- значение
атрибута autoflush из директивы pagepublic abstract void release()
Этот метод будет "восстанавливать/reset" начальное состояние PageContext'а, освобождая все ссылки и подготавливая PageContext для возможного использования в последующих вызовах initialize(). Этот метод обычно вызывается из JspFactory.releasePageContext().
Подклассы должны включать этот метод (быть оболочкой).
Этот метод не должен использоваться авторами страниц или библиотек тэгов.
public abstract void setAttribute(java.lang.String name, java.lang.Object attribute)
name
- имя атрибута для установкиattribute
-
объект для ассоциирования с именемpublic abstract void setAttribute(java.lang.String name, java.lang.Object o, int scope)
name
- имя атрибута для установкиo
-
объект для ассоциирования с именемscope
- область видимости, с
которой ассоциируется name/objectpublic abstract java.lang.Object getAttribute(java.lang.String name)
name
- имя получаемого атрибутаpublic abstract java.lang.Object getAttribute(java.lang.String name, int scope)
name
- имя атрибута для установкиscope
-
область видимости, с которой ассоциируется name/objectpublic abstract java.lang.Object findAttribute(java.lang.String name)
public abstract void removeAttribute(java.lang.String name)
name
- имя удаляемого объекта.public abstract void removeAttribute(java.lang.String name, int scope)
name
- имя удаляемого объекта.scope
-
область видимости для просмотра.public abstract int getAttributesScope(java.lang.String name)
public abstract java.util.Enumeration getAttributeNamesInScope(int scope)
public abstract JspWriter getOut()
public abstract javax.servlet.http.HttpSession getSession()
public abstract java.lang.Object getPage()
public abstract javax.servlet.ServletRequest getRequest()
public abstract javax.servlet.ServletResponse getResponse()
public abstract java.lang.Exception getException()
public abstract javax.servlet.ServletConfig getServletConfig()
public abstract javax.servlet.ServletContext getServletContext()
public abstract void forward(java.lang.String relativeUrlPath) throws javax.servlet.ServletException, java.io.IOException
Этот метод используется для перенаправления текущих ServletRequest и ServletResponse другому активному компоненту приложения.
Если relativeUrlPath начинается с "/", тогда специфицированный URL
вычисляется относительно DOCROOT ServletContext'а
для данной JSP.
Если путь не начинается с "/", специфицированный URL вычисляется относительно URL
запроса, который был отображён в вызывающую JSP.
Верным является только вызов этого метода из Thread
,
выполняющегося внутри метода _jspService(...)
в JSP.
После успешного вызова этого метода, для вызывающего Thread
не
разрешаются попытки модифицировать
ServletResponse
-объект. Любая такая попытка даёт непредсказуемое
поведение. Обычно вызывающий, после вызова этого метода, немедленно
возвращается из метода
_jspService(...)
.
relativeUrlPath
- специфицирует
относительный путь URL к целевому ресурсу, как описано выше. ServletResponse
не в том состоянии, когда перенаправление может быть выполнено.public abstract void include(java.lang.String relativeUrlPath) throws javax.servlet.ServletException, java.io.IOException
Вызывает обработку специфицированного ресурса как части текущих ServletRequest и ServletResponse, обрабатываемых вызывающим Thread. Вывод обрабатываемых запросом целевых ресурсов записывается непосредственно в поток вывода ServletResponse'а.
Текущий "out" JspWriter'а для данной JSP очищается, в качестве побочного эффекта этого вызова, до обработки include.
Если relativeUrlPath начинается с "/", специфицированный URL
вычисляется относительно DOCROOT ServletContext'а
для данной JSP.
Если путь не начинается с "/", специфицированный URL вычисляется относительно URL
запроса, который был отображён в вызывающую JSP.
Верным является только вызов этого метода из Thread
,
выполняющегося внутри метода _jspService(...)
в JSP.
relativeUrlPath
- специфицирует
относительный путь URL к включаемому целевому ресурсу.public abstract void handlePageException(java.lang.Exception e) throws javax.servlet.ServletException, java.io.IOException
Этот метод предназначен для процессинга/обработки необработанного исключения уровня "page" путём перенаправления исключения специфицированной для данной JSP странице ошибок или, если ничего не было специфицировано, для выполнения какой-либо специфицированной реализацией акции.
Класс реализации JSP обычно должен будет зачистить локальный статус до вызова этого метода и сразу после этого возвратить управление. Недопустимой является генерация вывода клиенту или модификация статуса ServletResponse'а после вызова этого метода.
Этот метод сохранён для обеспечения обратной совместимости. Вновь генерируемый код должен использовать PageContext.handlePageException(Throwable).
e
- обрабатываемое исключение.handlePageException(Throwable)
public abstract void handlePageException(java.lang.Throwable t) throws javax.servlet.ServletException, java.io.IOException
Этот метод идентичен методу handlePageException(Exception), за исключением того, что он принимает Throwable. Это предпочтительный метод для использования, так как он позволяет создавать соответствующую реализацию семантики errorpage.
Этот метод предназначен для процессинга/обработки необработанного исключения уровня "page" путём перенаправления исключения специфицированной для данной JSP странице ошибок или, если ничего не было специфицировано, для выполнения какой-либо специфицированной реализацией акции.
Класс реализации JSP обычно должен будет зачистить локальный статус до вызова этого метода и сразу после этого возвратить управление. Недопустимой является генерация вывода клиенту или модификация статуса ServletResponse'а после вызова этого метод.
t
- обрабатываемый throwable.handlePageException(Exception)
public BodyContent pushBody()
public JspWriter popBody()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.PageData
Информация времени трансляции о JSP-странице. Эта информация соответствует XML-просмотру JSP-страницы.
Объекты этого типа генерируются JSP-транслятором, например, когда передаются экземпляру TagLibraryValidator'а.
Конструктор. Резюме. | |
PageData
()
|
Метод. Резюме. | |
abstract java.io.InputStream
|
getInputStream
()
Возвращает поток ввода в XML-просмотре JSP-страницы. |
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Конструктор. Детали. |
public PageData()
Метод. Детали. |
public abstract java.io.InputStream getInputStream()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.TagAttributeInfo
Информация об атрибутах Tag'а, доступных на этапе трансляции. Этот класс инстанциируется из Tag Library Descriptor-файла (TLD).
Сюда включается только информация, необходимая для генерации кода. Другая информация, наподобие SCHEMA для проверки, находится в других местах.
Поле. Резюме. | |
static java.lang.String
|
ID
"id" привязывается как ID. |
Конструктор. Резюме. | |
TagAttributeInfo
(java.lang.String name,
boolean required,
java.lang.String type,
boolean reqTime)
Конструктор для TagAttributeInfo. |
Метод. Резюме. | |
boolean
|
canBeRequestTime
()
Может ли данный атрибут содержать значение времени запроса. |
static TagAttributeInfo
|
getIdAttribute
(TagAttributeInfo[] a)
Удобный static-метод, проходящий по массиву TagAttributeInfo-объектов в поисках "id". |
java.lang.String
|
getName
()
Имя данного атрибута. |
java.lang.String
|
getTypeName
()
Тип (как String) данного атрибута. |
boolean
|
isRequired
()
необходим ли данный атрибут. |
java.lang.String
|
toString
()
|
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait
|
Поле. Детали. |
public static final java.lang.String ID
Конструктор. Детали. |
public TagAttributeInfo(java.lang.String name, boolean required, java.lang.String type, boolean reqTime)
name
- имя атрибута.required
-
необходим ли атрибут в экземплярах тэга.type
- имя типа
атрибута.reqTime
- содержит ли атрибут Attribute времени
запроса.Метод. Детали. |
public java.lang.String getName()
public java.lang.String getTypeName()
public boolean canBeRequestTime()
public boolean isRequired()
public static TagAttributeInfo getIdAttribute(TagAttributeInfo[] a)
a
- массив TagAttributeInfo.public java.lang.String toString()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ| ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.TagData
Информация (только времени трансляции) пары attribute/value для экземпляра тэга.
TagData используется только в качестве аргумента методов isValid и getVariableInfo в of TagExtraInfo, которые вызываются на этапе трансляции.
Поле. Резюме. | |
static java.lang.Object
|
REQUEST_TIME_VALUE
Определённое значение атрибута для указания его значения в выражении времени запроса (которое ещё не доступно, поскольку экземпляры TagData используются на этапе трансляции). |
Конструктор. Резюме. | |
TagData
(java.util.Hashtable attrs)
Конструктор для TagData. |
|
TagData
(java.lang.Object[][] atts)
Конструктор для TagData. |
Метод. Резюме | |
java.lang.Object
|
getAttribute
(java.lang.String attName)
Значение атрибута. |
java.util.Enumeration
|
getAttributes
()
Перечисляет атрибуты. |
java.lang.String
|
getAttributeString
(java.lang.String attName)
Получает значение для данного атрибута. |
java.lang.String
|
getId
()
Значение атрибута id, если доступно. |
void
|
setAttribute
(java.lang.String attName,
java.lang.Object value)
Устанавливает значение атрибута. |
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Поле. Детали. |
public static final java.lang.Object REQUEST_TIME_VALUE
Конструктор. Детали. |
public TagData(java.lang.Object[][] atts)
Типичный конструктор выглядит так:
static final Object[][] att = {{"connection", "conn0"}, {"id", "query0"}}; static final TagData td = new TagData(att);Все значения обязаны быть Strings, за исключением тех, которые содержат определённый объект REQUEST_TIME_VALUE.
atts
- static-атрибут и значения. Может
быть null.public TagData(java.util.Hashtable attrs)
attrs
- хэш-таблица, из которой получать
значения.Метод. Детали. |
public java.lang.String getId()
public java.lang.Object getAttribute(java.lang.String attName)
public void setAttribute(java.lang.String attName, java.lang.Object value)
attName
- имя атрибута.value
-
значение.public java.lang.String getAttributeString(java.lang.String attName)
public java.util.Enumeration getAttributes()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ| ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.TagExtraInfo
Необязательный класс/Optional, предоставляемый автором библиотеки тэгов для описания дополнительной информации времени трансляции, не указанной в TLD. Класс TagExtraInfo упоминается в Tag Library Descriptor-файле (TLD).
Этот класс может использоваться:
JSP-транчлятор отвечает за то, чтобы начальное значение, возвращаемое вызовами getTagInfo(), соответствовало TagInfo-объекту для транслируемого тэга. Если выполняется явный вызов setTagInfo(), передаваемый объект будет возвращён последующими вызовами getTagInfo().
Единственный способ повлиять на значение, возвращаемое методом getTagInfo(), - через вызовы setTagInfo(), и, таким образом, TagExtraInfo.setTagInfo() вызывается JSP-транслятором TagInfo-объектом, который соответствует транслируемому тэгу. Вызов должен происходить до любого вызова метода isValid() и до любого вызова getVariableInfo().
Конструктор. Резюме. | |
TagExtraInfo
()
|
Метод. Резюме. | |
TagInfo
|
getTagInfo
()
Получает TagInfo для данного класса. |
VariableInfo[]
|
getVariableInfo
(TagData data)
Получает информацию о переменных скриптинга, определённых тэгом, ассоциированным с данным экземпляром TagExtraInfo. |
boolean
|
isValid
(TagData data)
Проверка атрибутов на этапе трансляции. |
void
|
setTagInfo
(TagInfo tagInfo)
Устанавливает TagInfo для данного класса. |
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Конструктор. Детали. |
public TagExtraInfo()
Метод. Детали. |
public VariableInfo[] getVariableInfo(TagData data)
data
- TagData-экземпляр.public boolean isValid(TagData data)
data
- TagData-экземпляр.public final void setTagInfo(TagInfo tagInfo)
tagInfo
- TagInfo, которого расширяет
данный экземпляр.public final TagInfo getTagInfo()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.TagInfo
Tag-информация для тэга в Библиотеке Тэгов; Этот класс инстанциируется из Tag Library Descriptor-файла (TLD) и доступен только на этапе трансляции.
Поле. Резюме. | |
static java.lang.String
|
BODY_CONTENT_EMPTY
static-константа для getBodyContent(), если он пустой |
static java.lang.String
|
BODY_CONTENT_JSP
static-константа для getBodyContent(), если он - JSP |
static java.lang.String
|
BODY_CONTENT_TAG_DEPENDENT
static-константа для getBodyContent(), если он зависит от Tag'а |
Конструктор. Резюме. | |
TagInfo
(java.lang.String tagName,
java.lang.String tagClassName,
java.lang.String bodycontent,
java.lang.String infoString,
TagLibraryInfo taglib,
TagExtraInfo tagExtraInfo,
TagAttributeInfo[] attributeInfo)
Конструктор для TagInfo из данных в формате JSP 1.1 для TLD. |
|
TagInfo
(java.lang.String tagName,
java.lang.String tagClassName,
java.lang.String bodycontent,
java.lang.String infoString,
TagLibraryInfo taglib,
TagExtraInfo tagExtraInfo,
TagAttributeInfo[] attributeInfo,
java.lang.String displayName,
java.lang.String smallIcon,
java.lang.String largeIcon,
TagVariableInfo[] tvi)
Конструктор для TagInfo из данных в формате JSP 1.2 для TLD. |
Метод. Резюме. | |
TagAttributeInfo[]
|
getAttributes
()
Информация атрибута (в TLD) данного тэга. |
java.lang.String
|
getBodyContent
()
Информация bodycontent для данного тэга. |
java.lang.String
|
getDisplayName
()
Получает displayName |
java.lang.String
|
getInfoString
()
Строка информации для тэга. |
java.lang.String
|
getLargeIcon
()
Получает путь к большой иконке. |
java.lang.String
|
getSmallIcon
()
Получает путь к маленькой иконке. |
java.lang.String
|
getTagClassName
()
Имя класса, предоставляющего обработчик для данного тэга. |
TagExtraInfo
|
getTagExtraInfo
()
Экземпляр (если имеется) для дополнительной информации тэга. |
TagLibraryInfo
|
getTagLibrary
()
Экземпляр TabLibraryInfo, к которому принадлежим. |
java.lang.String
|
getTagName
()
Имя Tag'а. |
TagVariableInfo[]
|
getTagVariableInfos
()
Получает Get TagVariableInfo-объекты, ассоциированные с данным TagInfo. |
VariableInfo[]
|
getVariableInfo
(TagData data)
Информация об объектах скриптинга, созданных этим тэгом на этапе прогона. |
boolean
|
isValid
(TagData data)
Проверка атрибутов на этапе трансляции. |
void
|
setTagExtraInfo
(TagExtraInfo tei)
Устанавливает экземпляр для дополнительной информации тэга. |
void
|
setTagLibrary
(TagLibraryInfo tl)
Устанавливает свойство TagLibraryInfo. |
java.lang.String
|
toString
()
Строго для целей отладки ... |
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait
|
Поле. Детали. |
public static final java.lang.String BODY_CONTENT_JSP
public static final java.lang.String BODY_CONTENT_TAG_DEPENDENT
public static final java.lang.String BODY_CONTENT_EMPTY
Конструктор. Детали. |
public TagInfo(java.lang.String tagName, java.lang.String tagClassName, java.lang.String bodycontent, java.lang.String infoString, TagLibraryInfo taglib, TagExtraInfo tagExtraInfo, TagAttributeInfo[] attributeInfo)
tagName
- имя данного тэга;tagClassName
-
имя класса обработчика тэга;bodycontent
- информация
содержимого тела этих тэгов;infoString
- строка (optional)
информации для данного тэга;taglib
- экземпляр библиотеки
тэгов, содержащей нас;tagExtraInfo
- экземпляр, предоставляющий
дополнительную информацию Tag'а. Может быть null;attributeInfo
-
массив AttributeInfo-данных из дескриптора.
Может быть null.public TagInfo(java.lang.String tagName, java.lang.String tagClassName, java.lang.String bodycontent, java.lang.String infoString, TagLibraryInfo taglib, TagExtraInfo tagExtraInfo, TagAttributeInfo[] attributeInfo, java.lang.String displayName, java.lang.String smallIcon, java.lang.String largeIcon, TagVariableInfo[] tvi)
tagName
- имя данного тэга;tagClassName
-
имя класса обработчика тэга;bodycontent
- информация
содержимого тела этих тэгов;infoString
- строка (optional)
информации для данного тэга;taglib
- экземпляр библиотеки
тэгов, содержащей нас;tagExtraInfo
- экземпляр, предоставляющий
дополнительную информацию Tag'а. Может быть null;attributeInfo
-
массив AttributeInfo-данных из дескриптора.
Может быть null;displayName
- краткое имя, отображаемое
утилитами;smallIcon
- путь к небольшой иконке, отображаемой
утилитами;largeIcon
- путь к большой иконке, отображаемой
утилитами;tagVariableInfo
- массив TagVariableInfo (или null).Метод. Детали. |
public java.lang.String getTagName()
public TagAttributeInfo[] getAttributes()
public VariableInfo[] getVariableInfo(TagData data)
По умолчанию null, если тэг не имеет атрибута "id", иначе - {"id", Object}
data
- TagData, описывающий данную акцию .public boolean isValid(TagData data)
data
- экземпляр TagData времени
трансляции.public void setTagExtraInfo(TagExtraInfo tei)
tei
- экземпляр TagExtraInfo.public TagExtraInfo getTagExtraInfo()
public java.lang.String getTagClassName()
public java.lang.String getBodyContent()
public java.lang.String getInfoString()
public void setTagLibrary(TagLibraryInfo tl)
tl
- TagLibraryInfo для назначения.public TagLibraryInfo getTagLibrary()
public java.lang.String getDisplayName()
public java.lang.String getSmallIcon()
public java.lang.String getLargeIcon()
public TagVariableInfo[] getTagVariableInfos()
public java.lang.String toString()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.TagLibraryInfo
Информация этапа трансляции, ассоциированная с директивой taglib, и лежащий в её основе TLD-файл. Большая часть информации - непосредственно из TLD, за исключением значений prefix и uri, используемых в директиве taglib.
Поле. Резюме. | |
protected java.lang.String
|
info
|
protected java.lang.String
|
jspversion
|
protected java.lang.String
|
prefix
|
protected java.lang.String
|
shortname
|
protected TagInfo[]
|
tags
|
protected java.lang.String
|
tlibversion
|
protected java.lang.String
|
uri
|
protected java.lang.String
|
urn
|
Конструктор. Резюме. | |
protected
|
TagLibraryInfo
(java.lang.String prefix,
java.lang.String uri)
Конструктор. |
Метод. Резюме. | |
java.lang.String
|
getInfoString
()
Информация (документация) для данного TLD. |
java.lang.String
|
getPrefixString
()
Префикс, назначенный данной taglib. |
java.lang.String
|
etReliableURN
()
"Надёжное" URN, указанное в TLD. |
java.lang.String
|
getRequiredVersion
()
Строка, описывающая необходимую версию JSP-контейнера. |
java.lang.String
|
getShortName
()
Предпочтительное краткое имя (prefix/префикс), как указано в TLD. |
TagInfo
|
getTag
(java.lang.String shortname)
Получает TagInfo для данного имени тэга, просматривая все тэги в данной библиотеке тэгов. |
TagInfo[]
|
getTags
()
Массив, описывающий тэги, определённые данной библиотекой тэгов. |
java.lang.String
|
getURI
()
Значение атрибута uri. |
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Поле. Детали. |
protected java.lang.String prefix
protected java.lang.String uri
protected TagInfo[] tags
protected java.lang.String tlibversion
protected java.lang.String jspversion
protected java.lang.String shortname
protected java.lang.String urn
protected java.lang.String info
Конструктор. Детали. |
protected TagLibraryInfo(java.lang.String prefix, java.lang.String uri)
prefix
- префикс, используемый директивой tagliburi
- URI,
используемый директивой taglibМетод. Детали. |
public java.lang.String getURI()
public java.lang.String getPrefixString()
public java.lang.String getShortName()
public java.lang.String getReliableURN()
public java.lang.String getInfoString()
public java.lang.String getRequiredVersion()
public TagInfo[] getTags()
public TagInfo getTag(java.lang.String shortname)
shortname
- краткое имя (не prefix/префикс)
тэга.
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.TagLibraryValidator
Класс проверщика на этапе трансляции для JSP-страницы. проверщик оперирует XML-документом, ассоциированным с JSP-страницей.
TLD-файл ассоциирует класс TagLibraryValidator и некоторые init-аргументы с библиотекой тэгов.
JSP-контейнер отвечает за размещение соответствующего экземпляра соответствующего подкласса:
Экземпляр TagLibraryValidator'а может создавать вспомогательные объекты внутренне для выполнения проверки (например, проверщик XSchema) и может повторно использовать их для всех страниц в ходе данной трансляции.
JSP-контейнер не гарантирует сериализацию вызовов метода validate(), и TagLibraryValidator'ы должны выполнять необходимую синхронизацию, если потребуется.
JSP-контейнер может по выбору поддерживать атрибут jsp:id для предоставления
качественной проверки ошибок.
Если атрибут поддерживается, контейнер будет отслеживать JSP-страницы по мере
передачи контейнеру и назначать каждому элементу уникальный "id", который
передаётся как значение атрибута jsp:id. Каждый XML-элемент в имеющемся XML-просмотре
будет расширен этим атрибутом.
TagLibraryValidator может затем использовать этот атрибут в одном или более
объектах ValidationMessage. В свою очередь, контейнер может использовать эти
значения для предоставления более точной информации о местонахождении ошибки.
Конструктор. Резюме. | |
TagLibraryValidator
()
|
Метод. Резюме. | |
java.util.Map
|
getInitParameters
()
Получает данные init-параметров как неизменяемую Map/Карту. |
void
|
release
()
Освобождает любые данные, сохраняемые данным экземпляром для целей проверки. |
void
|
setInitParameters
(java.util.Map map)
Устанавливает init-данные в TLD для данного проверщика. |
ValidationMessage[]
|
validate
(java.lang.String prefix,
java.lang.String uri,
PageData page)
Проверяет JSP-страницу. |
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Конструктор. Детали. |
public TagLibraryValidator()
Метод. Детали. |
public void setInitParameters(java.util.Map map)
initMap
- Map/Карта, описывающая init-параметры.public java.util.Map getInitParameters()
public ValidationMessage[] validate(java.lang.String prefix, java.lang.String uri, PageData page)
prefix
- значение аргумента prefix в
директиве;uri
- значение аргумента uri в директиве;thePage
- JspData page-объект.public void release()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.TagSupport
Базовый класс для определения новых обработчиков тэгов, реализующих Tag.
Класс TagSupport является вспомогательным классом, предназначенным для
использования в качестве базового класса для новых обработчиков тэгов.
Класс TagSupport реализует интерфейсы Tag и IterationTag и добавляет удобные
методы, включая getter-методы, для свойств
Tag'а. TagSupport имеет один static-метод, который
включён для облегчения координации между кооперирующимися тэгами.
Многие обработчики тэгов будут расширять TagSupport и лишь переопределять некоторые методы.
Поле. Резюме. | |
protected java.lang.String
|
id
|
protected PageContext
|
pageContext
|
Конструктор. Резюме. | |
TagSupport
()
Конструктор по умолчанию, все подклассы должны лишь определить public-конструктор с той же подписью м вызывать конструктор суперкласса. |
Метод. Резюме. | |
int
|
doAfterBody
()
Обработка по умолчанию тела. |
int
|
doEndTag
()
Обработка по умолчанию конечного тэга, возвращающего EVAL_PAGE. |
int
|
doStartTag
()
Обработка по умолчанию начального тэга, возвращающего SKIP_BODY. |
static Tag
|
findAncestorWithClass
(Tag from,
java.lang.Class klass)
Находит экземпляр данного типа класса - ближайший к данному экземпляру. |
java.lang.String
|
getId
()
Значение атрибута id данного тэга; или null. |
Tag
|
getParent
()
Экземпляр Tag'а, ближайший содержащий данный экземпляр тэга. |
java.lang.Object
|
getValue
(java.lang.String k)
Получает значение, ассоциированное с ключом. |
java.util.Enumeration
|
getValues
()
Перечисляет значения, хранимые данным обработчиком тэга. |
void
|
release
()
Освободить статус. |
void
|
removeValue
(java.lang.String k)
Удалить значение, ассоциированное с ключом. |
void
|
setId
(java.lang.String id)
Устанавливает атрибут id данного тэга. |
void
|
setPageContext
(PageContext pageContext)
Устанавливает контекст страницы. |
void
|
setParent
(Tag t)
Устанавливает содержащий/nesting тэг данного тэга. |
void
|
setValue
(java.lang.String k,
java.lang.Object o)
Ассоциирует значение со String-ключом. |
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Поле. Детали. |
protected java.lang.String id
protected PageContext pageContext
Конструктор. Детали. |
public TagSupport()
Метод. Детали. |
public static final Tag findAncestorWithClass(Tag from, java.lang.Class klass)
Текущая версия спецификации предоставляет только один формальный способ указания рассматриваемого типа обработчика тэга: класс реализации обработчика тэга, описанный с субэлементе tag-class элемента tag. Это расширяется неформальным способом путём разрешения автору библиотеки тэгов указывать в субэлементе description рассматриваемый тип. Тип должен быть подтипом класса реализации обработчика тэга или void. Это дополнительное ограничение может быть использовано специализированным контейнером, который знает об этой специфической библиотеке тэгов, как в случае со стандартной библиотекой тэгов JSP.
Если автор библиотеки тэгов предоставляет информацию о рассматриваемом типе обработчика тэга, клиентский программный код должен придерживаться этого ограничения. А точнее, Class, передаваемый методу findAncestorWithClass, должен быть подтипом рассматриваемого типа.
from
- экземпляр, с которого начинать
просмотр.klass
- подкласс Tag'а или
др. соответствующего интерфейса.public int doStartTag() throws JspException
Tag.doStartTag()
public int doEndTag() throws JspException
Tag.doEndTag()
public int doAfterBody() throws JspException
IterationTag.doAfterBody()
public void release()
Tag.release()
public void setParent(Tag t)
t
- родительский Tag.Tag.setParent(Tag)
public Tag getParent()
Tag.getParent()
public void setId(java.lang.String id)
id
- String для id.public java.lang.String getId()
public void setPageContext(PageContext pageContext)
pageContenxt
- PageContext.Tag.setPageContext(javax.servlet.jsp.PageContext)
public void setValue(java.lang.String k, java.lang.Object o)
k
- String-ключ.o
-
ассоциируемое значение.public java.lang.Object getValue(java.lang.String k)
k
- строка-ключ.public void removeValue(java.lang.String k)
k
- строка-ключ.public java.util.Enumeration getValues()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.TagVariableInfo
Информация переменной для тэга в Библиотеке Тэгов; этот класс инстанциируется из Tag Library Descriptor-файла (TLD) и доступен только на этапе трансляции. Этот объект должен быть неизменяемым. Данная информация доступна только в формате JSP 1.2
Конструктор. Резюме. | |
TagVariableInfo
(java.lang.String nameGiven,
java.lang.String nameFromAttribute,
java.lang.String className,
boolean declare,
int scope)
Конструктор для TagVariableInfo. |
Метод. Резюме. | |
java.lang.String
|
getClassName
()
Тело элемента <variable-class>. |
boolean
|
getDeclare
()
Тело элемента <declare>. |
java.lang.String
|
getNameFromAttribute
()
Тело элемента <name-from-attribute>. |
java.lang.String
|
getNameGiven
()
Тело элемента <name-given>. |
int
|
getScope
()
Тело элемента <scope>. |
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Конструктор. Детали. |
public TagVariableInfo(java.lang.String nameGiven, java.lang.String nameFromAttribute, java.lang.String className, boolean declare, int scope)
nameGiven
- значение <name-given>nameFromAttribute
-
значение <name-from-attribute>className
- значение <variable-class>declare
-
значение <declare>scope
- значение <scope>Метод. Детали. |
public java.lang.String getNameGiven()
public java.lang.String getNameFromAttribute()
public java.lang.String getClassName()
public boolean getDeclare()
public int getScope()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ ИНТЕРФЕЙС СЛЕДУЮЩИЙ ИНТЕРФЕЙС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
Вспомогательный интерфейс для обработчиков тэгов с интерфейсом Tag, IterationTag или BodyTag, которым нужны дополнительные возможности для обслуживания ресурсов.
Этот интерфейс предоставляет два новых метода: doCatch(Throwable)
и doFinally().
Прототип вызова таков:
h = get a Tag(); // получить обработчик тэга, возможно, из пула
h.setPageContext(pc); // инициализировать, как нужно
h.setParent(null);
h.setFoo("foo");
// протокол вызова тэга; см. Tag.java
try {
doStartTag()...
....
doEndTag()...
} catch (Throwable t) {
// реакция на исключительное условие
h.doCatch(t);
} finally {
// восстановление инвариантов данных и освобождение вызванных ресурсов
h.doFinally();
}
... другие вызовы, возможно, с новыми setter'ами
...
h.release(); // освобождение ресурсов длительного пользования
Метод. Резюме. | |
void
|
doCatch
(java.lang.Throwable t)
Вызывается. если возникает Throwable в процессе обсчёта BODY внутри тэга или в любом из следующих методов: Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() и BodyTag.doInitBody(). |
void
|
doFinally
()
Всегда вызывается после doEndTag() для любого класса, реализующего Tag, IterationTag или BodyTag. |
Метод. Детали. |
public void doCatch(java.lang.Throwable t) throws java.lang.Throwable
Этот метод не вызывается, если Throwable возникает в действия одного из setter-методов.
Этот метод может вызывать исключение (то же самое или новое), которое будет передано затем во вложенную цепь. Если исключение отловлено, вызывается doFinally().
Этот метод предназначен для использования в ответ на возникновение исключительного условия.
t
- отлавливаемое исключение,
перемещающееся по данному тэгу.public void doFinally()
Этот метод не вызывается, если Throwable возникает в действия одного из setter-методов.
Этот метод не должен вызывать Exception.
Этот метод предназначен для обслуживания целостности вызываемых данных и акций по обслуживанию ресурсов.
|
|||||||||
ПРЕДЫДУЩИЙ ИНТЕРФЕЙС СЛЕДУЮЩИЙ ИНТЕРФЕЙС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.ValidationMessage
Сообщение о проверке из TagLibraryValidator.
JSP-контейнер может (по выбору/optionally) поддерживать атрибут jsp:id для предоставления более качественной проверки ошибок. Если это поддерживается, контейнер будет отслеживать JSP-страницы по мере передачи контейнеру и будет присваивать каждому элементу уникальный "id", который передаётся как значение атрибута jsp:id. Каждый XML-элемент, доступный в XML-просмотре, будет дополнен этим атрибутом. TagLibraryValidator может после этого использовать этот атрибут в одном или более ValidationMessage-объектах. Контейнер, в свою очередь, может использовать эти значения для предоставления более точной информации о местонахождении ошибки.
Конструктор. Резюме. | |
ValidationMessage
(java.lang.String id,
java.lang.String message)
Создаёт ValidationMessage. |
Метод. Резюме. | |
java.lang.String
|
getId
()
Получает jsp:id. |
java.lang.String
|
getMessage
()
Получает локализованное сообщение об ошибке. |
Методы, унаследованные из класа java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Конструктор. Детали. |
public ValidationMessage(java.lang.String id, java.lang.String message)
id
- null или значение атрибута jsp:id.message
-
локализованное сообщение о проверке.Метод. Детали. |
public java.lang.String getId()
public java.lang.String getMessage()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
java.lang.Object | +--javax.servlet.jsp.tagext.VariableInfo
Информация о переменных скриптинга, которые создаются/модифицируются тэгом (на этапе прогона). Эта информация предоставляется TagExtraInfo-классами и используется фазой трансляции JSP.
Переменные скриптинга, генерируемые специальной акцией, могут иметь значения scope: page, request, session и application.
Имя класса (VariableInfo.getClassName) в возвращаемых объектах используется для определения типов переменных скриптинга. В связи с этим, специальная акция не может создать переменную скриптинга примитивного типа. Обойти это можно с помощью "боксовых/boxed" типов.
Имя класса может быть Полным Квалифицированным Именем Класса или кратким именем класса.
Если предоставляется Полное Квалифицированное Имя Класса, оно должно ссылаться на класс, который должен находится в пути CLASSPATH для данного Web-Приложения (см. спецификацию Servlet 2.3 - это директории WEB-INF/lib и WEB-INF/classes). Невыполнение этого приведёт к ошибке времени трансляции.
Если задаются краткие имена классов в VariableInfo-объектах, то имя класса обязано быть именем public-класса в контексте директив import страницы, на которой появилась специальная акция (будет проверено, имеется ли трёп JLS, на который ссылаются). Класс обязан также находиться в пути CLASSPATH для данного Web-Приложения (см. спецификацию Servlet 2.3 - это директории WEB-INF/lib и WEB-INF/classes). Невыполнение этого приведёт к ошибке времени трансляции.
Комментарии Использования
Часто полное квалифицированное имя класса ссылается на класс, который известен библиотеке тэгов и, таким образом, будет помещён в тот же самый JAR-файл, что и обработчики тэгов. В большинстве других случаев оно будет ссылаться на класс, который находится на платформе, на которой построен JSP-процессор (типа J2EE). Использование полных квалифицированных имён классов таким образом является относительно более устойчивым к ошибкам конфигурации.
Краткое имя обычно генерируется библиотекой тэгов на базе некоторых атрибутов, переданных от пользователя специальной акции (автора), и это уже менее надёжно: например, отсутствие директивы import в ссылающейся JSP-странице приведёт к неверному краткому имени класса и ошибке трансляции.
Протокол Синхронизации
Результатом вызова getVariableInfo является массив VariableInfo-объектов. Каждый такой объект описывает переменную скриптинга, предоставляя её имя, тип, указывая, новая переменная, или нет и какова область её видимости. Область видимости лучше показать на рисунке:
Спецификация JSP 1.2 определяет интерпретацию 3 значений:
Информация Переменной в TLD
Информация переменной скриптинга в большинстве случаев может кодироваться непосредственно в Tag Library Descriptor'е через использование субэлемента <variable> элемента <tag>. См. спецификацию JSP.
Поле. Резюме. | |
static int
|
AT_BEGIN
Информация о видимости: переменная видна после начального тэга. |
static int
|
AT_END
Информация о видимости: переменная видна после конечного тэга. |
static int
|
NESTED
Информация о видимости: переменная видна только внутри между начальным/конечным тэгами. |
Конструктор. Резюме. | |
VariableInfo
(java.lang.String varName,
java.lang.String className,
boolean declare,
int scope)
Конструктор. Эти объекты могут быть созданы (на этапе трансляции) экземплярами TagExtraInfo. |
Метод. Резюме. | |
java.lang.String
|
getClassName
()
|
boolean
|
getDeclare
()
|
int
|
getScope
()
|
java.lang.String
|
getVarName
()
|
Методы, унаследованные из класса java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
Поле. Детали. |
public static final int NESTED
public static final int AT_BEGIN
public static final int AT_END
Конструктор. Детали. |
public VariableInfo(java.lang.String varName, java.lang.String className, boolean declare, int scope)
id
- имя переменной скриптингаclassName
-
имя класса переменной скриптингаdeclare
- если true, это новая
переменная (в некоторых языках программирования потребуется определение)scope
-
обозначение лексической области видимости переменнойМетод. Детали. |
public java.lang.String getVarName()
public java.lang.String getClassName()
public boolean getDeclare()
public int getScope()
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЭЙМЫ БЕЗ ФРЭЙМОВ | ||||||||
РЕЗЮМЕ: ВНУТРЕННИЙ | ПОЛЕ | КОНСТРУКТОР | МЕТОД | ДЕТАЛИ: ПОЛЕ | КОНСТРУКТОР | МЕТОД |
Все Классы и Интерфейсы
(интерфейсы выделены курсивом)
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЕЙМОВ |
Не Рекомендуемые Поля | |
javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_TAG
Как в Java JSP API 1.2, использовать BodyTag.EVAL_BODY_BUFFERED или IterationTag.EVAL_BODY_AGAIN. |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЕЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
Обзор является центральной страницей этого API-документа и содержит список всех пакетов с резюме по каждому из них. Эта страница также содержит общее описание набора пакетов.
Каждый пакет содержит страницу со списком его классов и интерфейсов с резюме по каждому из них. Такая страница может содержать 4 категории:
- Интерфейсы (italic)
- Классы
- Исключения
- Ошибки
Каждый класс, интерфейс, внутренний класс/inner class и внутренний интерфейс имеет свою отдельную страницу.
Каждая из этих страниц содержит три раздела, состоящие из описания класса/интерфейса, таблиц-резюме и детального описания членов класса:Каждое резюме содержит в первом предложении из детального описания данного элемента. Резюме расположены в алфавитном порядке, а детальные описание даны в том порядке, в котором они расположены в исходном коде. Это сохраняет логическое группирование, установленное программистом.
- Диаграмма наследования классов
- Прямы подклассы
- Все известные субинтерфейсы
- Все известные реализующие классы
- Объявление класса/интерфейса
- Описание класса/интерфейса
- Внутренний класс - резюме
- Поле - резюме
- Конструктор - резюме
- Метод - резюме
- Поле - детали
- Конструктор - детали
- Метод - детали
В каждом пакете имеется страница Иерархии Классов, плюс иерархия каждого пакета.
Каждая страница иерархии содержит список классов и список интерфейсов.
Классы организованы по структуре наследования, начиная сjava.lang.Object
.
Интерфейсы не наследуют отjava.lang.Object
.
- При просмотре страницы Обзор, щелчок на "Дерево" выводит иерархию всех пакетов.
- При просмотре конкретного пакета, страницы класса или интерфейса, щелчок на "Дерево" выводит иерархию только данного пакета.
На странице Не рекомендуемый API перечислены все API, использовать которые не рекомендуется. Не рекомендуемый API не рекомендуется для использования, обычно из-за появления различных улучшений, и заменяющий API обычно приводится здесь же.
Не рекомендуемые API могут быть удалены в последующих реализациях.
Индекс содержит список, в алфавитном порядке, всех классов, интерфейсов, конструкторов, методов и полей.
Этот файл справки для API-документации, сгенерированной с использованием
стандартной doclet.
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
PREV NEXT | FRAMES NO FRAMES |
Все Классы и
Интерфейсы |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
Пакеты | |
javax.servlet.jsp | Пакет javax.servlet.jsp содержит несколько классов и интерфейсов, которые описывают и определяют контракты между классом реализации JSP-страницы и средой работы программы, предоставляемых экземпляру такого класса соответствующим JSP-контейнером. |
javax.servlet.jsp.tagext | Классы и интерфейсы для определения Библиотек Тэгов JavaServer Pages. |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
Пакет javax.servlet.jsp |
Class javax.servlet.jsp.JspException implements Serializable |
Сериализуемые Поля |
java.lang.Throwable rootCause
Class javax.servlet.jsp.JspTagException implements Serializable |
Пакет javax.servlet.jsp.tagext |
Class javax.servlet.jsp.tagext.BodyTagSupport implements Serializable |
Сериализуемые Поля |
BodyContent bodyContent
Class javax.servlet.jsp.tagext.TagSupport implements Serializable |
Сериализуемые Поля |
java.lang.String id
PageContext pageContext
Tag parent
java.util.Hashtable values
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |
Пакеты | |
javax.servlet.jsp | Пакет javax.servlet.jsp содержит несколько классов и интерфейсов, которые описывают и определяют контракты между классом реализации JSP-страницы и средой работы программы, предоставляемых экземпляру такого класса соответствующим JSP-контейнером. |
javax.servlet.jsp.tagext | Классы и интерфейсы для определения Библиотек Тэгов JavaServer Pages. |
|
|||||||||
НАЗАД ВПЕР╗Д | ФРЭЙМЫ БЕЗ ФРЭЙМОВ |