Синтаксис выражений: <% = выражение %>.
В языке XML выражение имеет форму <jsp:expression> выражение
</jsp: expression>.
Пример выражения:
Посещений: <% = results %>
Скриптлет (scriptlet) представляет собой "мини-сценарий", помещенный на страницу JSP. Он может содержать, в частности, объявления переменных и методов, выражения и операторы. Как и выражения, скриптлеты выполняются на этапе обработки запроса, а их результат помещается в объект ответа.
Синтаксис объявления скриптлета: <% код Java %>.
Эквивалентный синтаксис XML: <jsp: scriptlet> код Java </ jsp: scriptletx
Пример скриптлета.
:
<% int guessNum = request.getParameter ("GUESS");
if (guessNum == WinningNum) { %/>
Поздравляем - Вы выиграли!!!
<% }
else
{ %/>
Очень жаль - попробуйте еще раз.
<% } %/>
Объекты, неявно доступные для JSP
Каждый компонент JSP имеет доступ к некоторым объектам без необходимости явно объявлять их в компоненте. Эти объекты создаются контейнером для использования в пределах JSP. Разработчикам не мешает знать об их существовании. Следующие объекты могут быть вызваны в JSP.
· request— представляет поступивший запрос, который инициализировал обработку.
· response— представляет ответ на текущий запрос.
· pageContext—предоставляет доступ к атрибутам страницы и методам-полуфабрикатам.
· session— объект сеанса для текущего клиента.
· application— указывает контекст данного компонента.
· out— объект для записи в поток вывода.
· config— идентифицирует конфигурацию сервлета для данного JSP.
· page—указывает на сам текущий JSP.
· exception— идентифицирует исключительную ситуацию, которая привела к выводу страницы ошибки.
Библиотеки тегов
Одна из проблем при достижении целей технологии JSP состоит в уменьшении сложности программной логики, с которой должны иметь дело разработчики содержимого.
В спецификации JSP 1.1 появилась возможность создания специализированных библиотек тегов JSP, что позволяет уменьшить сложность. Эти библиотеки предназначены для того, чтобы разработчик Web-представления имел в своем распоряжении простые и удобные специализированные теги, через которые можно вызывать сложную логику.
Класс обработчика тега
Специализированный тег имеет связанный с ним класс обработчика тега. Этот класс должен сообщать системе, что следует делать при появлении данного тега в документе. Файл класса содержит код Java, который выполняется при запросе.
Теги могут иметь любое количество атрибутов и тело тега, но это не обязательно. Наиболее простой тег не содержит ни атрибутов, ни тела.
В следующем списке приведены примеры тега без тела; тега без тела, но с атрибутами и тега с атрибутами и телом.
<mytaglib:MyTag/>
<mytaglib:MyTag count="ll"/>
<mytaglib:ltfyTag count="10">
Это тело тега. Оно может содержать действия, директивы и т.д.
</mytaglib:MyTag>
Для тегов без тела в классе обработчика должен быть реализован метод doStartTag. Теги без тела полезно применять, когда разработчик представления должен иметь доступ лишь к относительно стабильному содержимому (т.е. не особенно меняющемуся от одного вхождения тега к другому).
Теги без тела, но с атрибутами можно применять для настройки результатов обработки. В таких случаях в классе обработчика тега должен быть также реализован метод установки значения атрибута с именем этого атрибута и префиксом set. В результате можно задавать подходящие значения атрибута (атрибутов) перед тем, как вызывать метод doStartTag, и получать в зависимости от этих значений разные результаты.
Для тегов с телом класс обработчика должен также реализовать метод doEndTag. Единственная задача этого метода — указывать системе, что надо продолжить работу после обработки тега, однако в нем можно реализовать и другие действия, например аварийное прекращение выполнения JSP.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.