Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену по ПИИ.docx
Скачиваний:
107
Добавлен:
26.03.2015
Размер:
207.29 Кб
Скачать

Скриплеты jsp

Скриплеты должны содержать фрагменты кода на языке скрипта, который указывается в атрибуте languageдирективы page (в нашем случае это язык Java). Тег JSP применяемый для скриплетов имеет следующий синтаксис:

<% скрипт на языке Java %>

  1. Библиотека тегов. Назначение основные возможности. Структура jsp-страницы при применении библиотеки тегов.

С точки зрения разработчика web-приложения библиотека тегов(Tag Library) – это технология позволяющая создавать собственные теги (будем их далее называть tdlтегами), которые потом можно использовать в jsp-страницах. Для того чтобы воспользоваться этой технологией необходимо выполнить следующее:

  1. создать дескриптор библиотеки тегов(Tag library descriptor,TDL) и поместить его в директорий приложения;

  2. создать обработчики тегов(Tag handler) – java-классы, генерирующие htmlтекст, замещающий tdl-теги, в выходном потоке jsp-страницы;

  3. поместить на jsp-странице директиву taglib, указывающую на месторасположение дескриптора библиотеки тегов и задающую префикс (пространство имен) для имен tdl-тегов в данной странице;

  4. 4) добавить tdl-теги в jsp-страницу.

Дескриптор библиотеки тегов

Дескриптор библиотеки тегов представляет собой текстовый файл, выполненный в формате XML. Он содержит описание библиотеки тегов и элементов библиотеки. Тег <taglib> открывает описание библиотеки, которое располагается до закрывающего тега </taglib>. Описание библиотеки состоит из пролога и описаний tld-тегов библиотеки.

Пролог содержит теги <taglib-version> для установки версии пользовательской библиотеки (в нашем случае установлена версия 1.0), <jsp-version> для указания применяемой спецификации JSP (в примере 1.2), <short-name> для символического обозначения (наименования) библиотеки (в примере – StaffTag) и <uri>, содержащего идентификатор ресурса библиотеки тегов (в примере – StaffTag.tld).

Описание каждого tld-тега библиотеки начинается с тега <tag> и заканчивается закрывающим тегом </tag>.

Для первого tld-тега с именем surname (указывается элементом name), используется класс-обработчик с именемstafftag.Surname.class (значение элемента tag-class). Этот tld-тег не содержит тела (значениеEMPTYэлемента body-content), но имеет один необязательный (значениеfalse элемента required) атрибут с именемvalue (значение элемента name) строкового типа (значениеjava.lang.String элемента type).

Второй tld-тег с именем dossierдопускает использование тела и имеет один обязательный атрибутactionтоже строкового типа.

Если необходимо описать несколько атрибутов для tld-тега, то внутри тега <tag> необходимо поместить несколько тегов <attribute> с соответствующим описанием.

Применение библиотечных тегов

Приводится пример jsp-страницы, разработанной с применением tldтегов: dossier,surname,lastname,submit.

Тег <%@ taglib > описывает jsp-директиву taglib, которая указывает на месторасположение библиотеки тегов и устанавливает префикс (пространство имен) для tld-тегов. В нашем случае дескриптор библиотеки тегов должен находиться в корне директории WEB-INF приложения, а префикс имеет значениеstaff.

<?xml version="1.0" encoding="ISO-8859-1" ?>

<%@ page language="java" contentType="text/html; charset=ISO-

8859-1"

pageEncoding="ISO-8859-1"%>

<%@ taglib uri="stafftag.tld" prefix="staff"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />

<title>Dossier</title>

</head>

<body>

<staff:dossier action="PostExample">