Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТАБЛИЦА ТЭГОВ HTML.doc
Скачиваний:
25
Добавлен:
12.05.2015
Размер:
401.41 Кб
Скачать

Развертывание Библиотеки Тэга

Развертывание библиотеки тэга является задачей администрирования, но, как и любая задача администрирования, чем больше вы понимаете требования для каждого приложения, тем легче она становится. В случае тэгов, есть несколько способов для развертывания библиотеки тэга и вы должны сделать выбор, какой из них больше всего подходит для вашего приложения. Это также зависит от того, будете ли вы использовать свою собственную библиотеку тэга или использовать библиотеку от третьих поставщиков.

Вы уже видели, что файл дескриптора библиотеки необходимо создавать для каждой библиотеки, и очевидно, что вы захотите поместить его куда-нибудь, где сервер сможет найти его. Вам также необходимо поместить Java классы где-нибудь, где контейнер сможет найти их.

Наиболее простой способ сделать это такой:

Поместите файл дескриптора библиотеки, или .tld файл, на сервер в директорий WEB-INF, в каталог вашего web приложения, например, ../webroot/tijtags/WEB-INF, используя символы-разделители пути, наиболее подходящие для вашей операционной системы.

Укажите расположение вашего .tld файла в вашей JSP странице, используя директиву taglib, например, <%@ taglib uri="/WEB-INF/tijtags.tld" prefix="tijtags" %>. Атрибут uri указывает относительный путь к файлу дескриптора библиотеки тэга.

Поместите ваш JSP файл, где он должен быть, а именно в jsp директорий.

Поместите ваши классы в директорий classes вашего каталога WEB-INF, например, ../webroot/tijtags/WEB-INF/classes/, убедившисть, что вы используете подкаталог с именем пакетов, как это делается для любого Java приложения.

Вот и все, что вам нужно сделать. Когда вы перезапустите ваш сервер, и обратитесь к JSP странице, например, набрав http://localhost/tijtags/index.jsp, здесь предполагается, что вы запускаете сервер локально, страница будет способна получить доступ к дескриптору библиотеки тэга и классам.

Это хорошо для тестирования, но более типичным случаем является хранения ваших классов в jar файле в директории /WEB-INF/lib. Если ваш файл дескриптора библиотеки находится в jar файле вместе с классами-обработчиками, то контейнер способен найти его, и будет различать тэги во время трансляции и работы.

Если вы развернули вашу библиотеку тэга, как релиз, или если вы используете библиотеку тэга сторонних производителей, вы захотите использовать более последовательную структуру директорий и вы можете пожелать держать все ваши библиотеки тэгов в одном месте. Это позволит вам разделять библиотеки тэга между различными web приложениями.

Чтобы сделать это, вы можете использовать второй подход, который реализуется посредством использования элемента <taglib> в файле web.xml вашего web приложения путем добавления строк:

<taglib> <taglib-uri>http://www.eckelobjects.com/tagtut/tags1.0</taglib-uri> <taglib-location>tijtags.tld</taglib-location> </taglib>

Здесь создается связка между URI и расположением файла дескриптора библиотеки тэга. Если такая связка существует, ваша JSP страница может ссылаться на библиотеку тэга по ее URI, а не через файл Дескриптора Библиотеки Тэга:

<%@ taglib uri="http://www.eckelobjects.com/tagtut/tags1.0" prefix="tijtags" %>

Это позволяет web администратору перемещать библиотеки тэга на сервере, хотя это и не обязательно, если не применяются web приложения. Если на сервере создана такая связка, любое web приложение будет способно создавать ссылку на библиотеку тэга посредством URI. Это имеет больше смысла, когда происходит разворачивание библиотек от третьих производителей, которые необходимо помещать в разделяемые каталоги, где они могут быть доступны любому web приложению.

Помните, для URI нет необходимости использовать форму HTTP URL, как это сделано выше, но это хороший способ гарантировать уникальность.

В приведенном выше примере вы заметите, что отображение между .tld файлом и URI указано в файле web.xml. Если ваши классы библиотеки тэга находятся в jar файле, это означает, что существует дескриптор библиотеки, который располагается вне jar файла. Это может быть неудобно, поэтому спецификация контейнера для тэгов определяет автоматическое связывание напрямую с jar файлом, содержащим дескриптор библиотеки тэга.

Чтобы использовать это, вам необходимо убедиться, что ваш дескриптор библиотеки тэга есть в файле, имеет название taglib.tld, и что он находится в jar файле библиотеки тега в директории META-INF. Если это так, то вы можете определить связывание в вашем web.xml файле следующим образом:

<taglib> <taglib-uri>

http://www.eckelobjects.com/tagtut/tags1.0

</taglib-uri> <taglib-location>tijtags.jar</taglib-location> </taglib>

Обратите внимание, что jar файл указывается в качестве места расположения библиотеки тэга. Это, вероятно, лучший способ разворачивания библиотек тэга, он позволит вам разделять библиотеки между приложениями, обращаясь к библиотеке тэга по уникальному URI и храня файл дескриптора библиотеки тэга аккуратно упакованным вместе с классами.

На самом деле спецификация того, как JSP контейнер должен обрабатывать связку с библиотекой тэга, невероятно гибка. Контейнер будет пробовать и строить неявное связывание, если он найдет дескриптор вашей библиотеки тэга и не найдет явного связывания в вашем файле web.xml. Хотя, не рекомендуется, чтобы вы оставляли очень много работы контейнеру. Чем больше вы оставляете серверу, тем больший риск получаете в виде потери портируемости, когда, скажем, попробуете перенести ваше приложение на другой сервер приложений, вы также можете быть озабочены преодолением различия в поведении на разных платформах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]