Технология Java Server Pages

Технология JSP была ответом компании Sun на популярность технологии Microsoft ASP. Пример простой JSP-странины (шаблон) показан на рис. 3.8.

В первой строке данного примера показана директива страницы <%@ раде ...> (интересно обратить внимание на ее сходство с директивой web-формы ASP.Nct), в которой указывается на импортирование классов из пакета java.io. В следующей строке выполняется объявление переменной. Код на языке Java выделяется (также как и в РНР и ASP) специальными последовательностями символов <% ... %>.

Пример простой JSP-страницы

Рис. 3.8. Пример простой JSP-страницы

Как и технология РНР, выполнение JSP-страниц реализуется с помощью препроцессора, который преобразует (транслирует) их в исходный код сервлета. HTML-разметка, которая стоит вне выделенных блоков, транслируется в операторы print языка Java (как показано на рис. 3.9).

Технология JSP развивалась, и со временем к ней были добавлены такие новые возможности, как библиотеки JSP-тэгов (JSP taglib). Библиотека тэгов taglib – это набор специальных (серверных) JSP-тэгов, которые не передаются в HTTP-ответе браузеру, а используются при обработке JSP-страницы в контейнере сервлетов на стороне web-сервера.

Фактически каждый специальный тэг – это некоторая функциональность, для реализации которой в противном случае потребовалось бы включать некоторый встроенный блок, содержащий Java-код. Например, двумя наиболее часто используемыми тэгами являются: <jsp:useBean> и <jsp:getProperty>. Префикс "jsp:" говорит о том, что это не HTML-тэг, а специальный (серверный) тэг, который будет использоваться на стороне сервера. Тэг <jsp:useBean> позволяет разработчикам встраивать в JSP-страницу JavaBean-объекты (созданные и наполненные приложением в ходе сеанса работы пользователя). К ним можно получить доступ и изменить их значения с помощью тэгов <jsp:getProperty> и <jsp:setProperty>.

Результат трансляции JSP-страницы, показанной на рис. 3.8 в коде сервлета

Рис. 3.9. Результат трансляции JSP-страницы, показанной на рис. 3.8 в коде сервлета

В ходе выполнения трансляции JSP-страницы, которая совершается до компиляции и выполнения созданного сервлета, выполняется преобразование таких специальных тэгов в Java-код. Например, имеется следующий фрагмент JSP-страницы:

<jsp:usebean id="myBean" class-'mypackage.MyBean" scope="session'7>

<р>3начение свойства 'thing' равно

<jsp:getProperty name-'myBean" property="thing" />'.

</p>

Данный фрагмент будет транслироваться в следующий код на языке Java:

MyBean myBean = (MyBean) session.getAttributefmyBean'');

out.print("<p> Значение свойства 'thing' равно '" +

myBean.getThing().toString() +"'. </р>";

Отметим синтаксические сложности, связанные с подстановкой переменных в среде JSP. Для доступа к свойству JavaBean должен быть включен специальный тэг <jsp:getProperty>. Альтернативным способом является использование синтаксиса <%= object.variable %>.

 
< Пред   СОДЕРЖАНИЕ     След >