JSP, структура и организация
Рефераты >> Программирование и компьютеры >> JSP, структура и организация

<%

// Печатаем сводку для карты покупок (корзинки)

int num = cart.getNumberOfItems();

if (num > 0) {

%>

Выражения затем используются, чтобы вставить значение из num в выходной поток и определить соответствующую строку, чтобы вставить количество:

<font size="+2">You have <%= num %>

<%= (num==1 ? " item" : " items") %> in your shopping cart.

</font>

Включение содержимого в JSP страницу

Имеется два механизма для включения содержимого из другого источника в страницу JSP: директива include и элемент jsp:include.

Директива include обрабатывается, когда JSP страница транслируется в класс сервлета. Результатом директивы является вставка в JSP страницу текста, содержащегося в другом файле: или статического содержимого или другой JSP страницы. Вы вероятно должны использовать директиву include, чтобы включить содержимое баннера, информацию об авторском праве, или любую порцию содержимого, которую вы хотели бы многократно использовать в другой JSP странице. Синтаксис директивы include имеет вид:

<%@ include file="filename" %>

Например, все страницы приложения bookstore включают файл banner.jsp, содержащий текст баннера, с помощью следующей директивы:

<%@ include file="banner.jsp" %>

Вдобавок, страницы bookstore.jsp, bookdetails.jsp, catalog.jsp, иshowcart.jsp содержат элементы JSP, которые создают и уничтожают бин database с помощью элемента:

<%@ include file="initdestroy.jsp" %>

Поскольку вы должны статически вставлять директиву include в каждый файл, чтобы многократно использовать ее ресурс, этот подход имеет ограничения. Более гибкий подход построения страницы из кусков содержимого смотрите в A Template Tag Library.

Элемент include обрабатывается, когда страница JSP исполняется. Операция include позволяет вам включить или статический или динамический файл в JSP файл. Результат включения статических или динамических файлов получается совершенно различным. Если файл является статическим, его содержимое вставляется в вызывающий JSP файл. Если файл является динамическим, включаемой JSP странице посылается запрос, она исполняется, и затем результат включается в ответ вызвавшей ее JSP страницы. Синтаксис для элемента jsp:include имеет вид:

<jsp:include page="includedPage" />

Приложение date, представленное в начале главы, включает страницу, которая генерирует изображение локализованной даты, с помощью следующего элемента:

<jsp:include page="date.jsp"/>

Контроль пересылки данных другому Web компоненту

Механизм контроля пересылки данных другому web компоненту из JSP страницы использует функциональность, обеспечиваемую Java Servlet API как описано в Transferring a Control to Another Web Component. Вы получаете доступ к этой функциональности из JSP страницы с помощью элемента jsp:forward:

<jsp:forward page="/main.jsp" />

Отметим, что если какие-либо данные уже возвращены клиенту, элемент jsp:forward откажется работать и выбросит IllegalStateException.

Элемент Param

Когда вызывается элемент include или forward, целевой странице передается исходный объект request. Если вы хотите передать этой странице дополнительные данные, можете добавить параметры к объекту request с помощью элемента param:

<jsp:include page=" ." >

<jsp:param name="param1" value="value1"/>

</jsp:include>

Включение апплета

Вы можете включить апплет или компонент JavaBeans в JSP страницу с помощью элемента jsp:plugin. Этот элемент генерирует HTML, который содержит структурные компоненты, зависящие от клиентского браузера (<object> или <embed>). Это обеспечит загрузку Java Plugin (сменных программных модулей Java), если требуется, и клиентского компонента, и последующее выполнение клиентского компонента. Синтаксис для элемента jsp:plugin имеет вид:

<jsp:plugin

type="bean|applet"

code="objectCode"

codebase="objectCodebase"

{ align="alignment" }

{ archive="archiveList" }

{ height="height" }

{ hspace="hspace" }

{ jreversion="jreversion" }

{ name="componentName" }

{ vspace="vspace" }

{ width="width" }

{ nspluginurl="url" }

{ iepluginurl="url" } >

{ <jsp:params>

{ <jsp:param name="paramName" value= paramValue" /> }+

</jsp:params> }

{ <jsp:fallback> arbitrary_text </jsp:fallback> }

</jsp:plugin>

Тег jsp:plugin заменяется тегом <object> или <embed>, который соответствует запросу клиента. Атрибуты тега jsp:plugin обеспечивают конфигурационные данные для представления элемента, а также версию нужного plugin. Атрибуты nspluginurl и iepluginurl определяют URL, откуда этот plugin может быть загружен. Элементы jsp:param указывают параметры апплета или компонента JavaBeans.

Элемент jsp:fallback указывает на содержимое, которое должно быть использовано клиентским браузером, если этот plugin не сможет стартовать (поскольку <object> или <embed> не поддерживается клиентом, или имеется другая проблема).

Если этот plugin может стартовать, но апплет или компонент JavaBeans не может быть найден или запущен, пользователь получит специфическое для plugin сообщение (окно с сообщением о ClassNotFoundException).

Страничка banner.jsp примера Duke'sBookstore, которая создает баннер, показывающий динамические цифровые часы, генерируемые DigitalClock:

Рисунок 3.

Элемент jsp:plugin использован для загрузки апплета следующим образом:

<jsp:plugin

type="applet"

code="DigitalClock.class"

codebase="/bookstore2"

jreversion="1.3"

align="center" height="25" width="300"

nspluginurl="http://java.sun.com/products/

plugin/1.3.0_01/plugin-install.html"

iepluginurl="http://java.sun.com/products/

plugin/1.3.0_01/jinstall-130_01-win32.cab#Version=1,3,0,1" >

<jsp:params>

<jsp:param name="language"

value="<%=request.getLocale().getLanguage()%>" />

<jsp:param name="country"

value="<%=request.getLocale().getCountry()%>" />

<jsp:param name="bgcolor"

value="FFFFFF" />

<jsp:param name="fgcolor"

value="CC0066" />

</jsp:params>

<jsp:fallback>


Страница: