Автор работы: Пользователь скрыл имя, 27 Февраля 2014 в 15:52, реферат
Технология JavaServer Pages (JSP) позволяет легко создавать web содержимое, которое имеет как статические, так и динамические компоненты.
JSP технология воплощает все динамические возможности технологии Java Servlet, но обеспечивает более естественный способ создания статического содержимого. Главные особенности JSP технологии:
Язык разработки JSP страниц, которые являются текстовыми документами и описывают, как обработать запрос и построить ответ.
Структурные компоненты для доступа к серверным объектам.
Механизмы для определения расширений языка JSP.
СОДЕРЖАНИЕ
Введение…………………………………………………………
Введение
Технология JavaServer Pages (JSP) позволяет легко создавать web содержимое, которое имеет как статические, так и динамические компоненты.
JSP технология воплощает все динамические возможности технологии Java Servlet, но обеспечивает более естественный способ создания статического содержимого. Главные особенности JSP технологии:
Технология JSP также содержит API, который используется разработчиками web контейнеров, но этот API не рассматривается в данной главе.
Страница JSP является текстовым документом, которая содержит текст двух типов: статические исходные данные, которые могут быть оформлены в одном из текстовых форматов HTML, SVG, WML, или XML, и JSP элементы, которые конструируют динамическое содержимое.
Следующая web страница является формой, которая позволяет вам выбрать локализацию и отобразить дату в соответствующем стиле.
Рисунок 1.
Исходный текст для этого примера расположен в ../examples/. Страница JSP index.jsp использованная для создания этой формы, показана ниже. Это – типичная смесь статической HTML разметки и элементов JSP. Если вы разрабатывали web страницы, вы хорошо знакомы со структурными выражениями HTML документа (<head>, <body>, и так далее) и с HTML выражениями, которые создают форму <form> и меню <select>. Выделенные строки в примере содержат следующие типы JSP конструкций:
<%@ page import="java.util.*" %>
<%@ page contentType="text/html; charset=ISO-8859-5" %>
<html>
<head><title>Localized Dates</title></head>
<body bgcolor="white">
<jsp:useBean id="locales" scope="application"
class="MyLocales"/>
<form name="localeForm" action="index.jsp" method="post">
<b>Locale:</b>
<select name=locale>
<%
String selectedLocale = request.getParameter("locale")
Iterator i = locales.getLocaleNames().
while (i.hasNext()) {
String locale = (String)i.next();
if (selectedLocale != null &&
selectedLocale.equals(locale)) {
%>
<option selected><%=locale%></option>
<%
} else {
%>
<option><%=locale%></option>
<%
}
}
%>
</select>
<input type="submit" name="Submit" value="Get Date">
</form>
<jsp:include page="date.jsp"/>
</body>
</html>
Чтобы построить, развернуть и выполнить эту страницу:
Вы увидите выпадающий список, который содержит локализации. Выберите локализацию и нажмите Get Date. Вы увидите дату, представленную в стиле, соответствующем вашей локализации.
Для иллюстрации JSP технологии в этой главе переписывается каждый сервлет приложения Duke's Bookstore, представленный в The Example Servlets , как страница JSP:
Функция |
JSP страница |
Вход в книжный магазин |
bookstore.jsp |
Создание баннера (заголовка) магазина |
banner.jsp |
Просмотр книг, предлагаемых для продажи |
catalog.jsp |
Отбор книг в карту покупок («корзинку») |
catalog.jsp and bookdetails.jsp |
Получить подробную информацию о книге |
bookdetails.jsp |
Показать карту покупок |
showcart.jsp |
Удалить книгу(и) из карты покупок |
showcart.jsp |
Купить книги из карты покупок |
cashier.jsp |
Послать подтверждение покупки |
receipt.jsp |
Таблица 1. Пример Duke's Bookstore JSP Pages.
Исходные тексты для этого приложения расположены в examples/src/web/bookstore2. Данные для приложения bookstore по прежнему поддерживаются в базе данных Cloudscape. Однако, два изменения сделаны для объекта helper базы данных (database helper object) database.BookDB:
Наконец, эта версия примера использует апплет для генерации динамических цифровых часов в баннере. Смотрите Including an Applet, где описывается JSP элемент, который генерирует HTML для загрузки апплета.
Чтобы построить, развернуть и исполнить пример:
Смотрите Troubleshooting для помощи с диагностикой общих проблем.
Основные черты программной технологии JSP
JavaServer Page (JSP) –
это расширение технологии Java servlet,
являющееся удобным методом
Основным отличием от других подобных технологий, например ASP и PHP, является то, что код, находящийся внутри специальных тэгов не интерпретируется при обращении к странице, а предварительно компилируется в Java Servlet. Технология JSP удачно объединяет шаблонный подход к построению сайтов и все преимущества Java-платформы.
Важным шагом к расширению шаблонного подхода стали библиотеки тэгов. Они предоставляют хорошую возможность интегрировать стандартные, сторонние, или собственные программные компоненты в страницы. Простота создания и использования привели к большой популярности библиотек тэгов.
JSP не привязана
к конкретной платформе
Пример программного кода на JSP, который выбирает из базы данных информацию о торговых марках:
<%
List<Object> list = (new TradeMarkService()). getAllFromBase();
int i = 0;
for (i=0; i<list.size(); i++){
TradeMark tradeMark = (TradeMark)list.get(i);
%>
<tr>
<td><%= i+1 %></td>
<td><a>
</tr>
<% } %>
Этот пример демонстрирует комбинацию Java-кода и статического HTML на JSP-странице.
В настоящее время реализована трансляция JSP-страницы в сервлет, программный код которого пишется на языке Java. Однако остается возможность реализации JSP и на других языках программирования. Преобразование JSP-страницы в сервлет может выполняться либо в момент, когда JSP страница помещается на сервер, либо когда клиент первый раз обращается к этой странице. Процедура преобразования трудоемка, занимает много времени, поэтому рекомендуется выполнять ее только один раз. Все последующие обращения клиента к JSP-странице сервер автоматически переадресует на сервлет, который был получен в результате ее преобразования.
Сервлет, полученный после преобразования JSP-страницы, функционирует в рамках стандартного контейнера сервлетов и использует строго регламентированный интерфейс. Поэтому эта технология не зависит от каких-либо особенностей той или иной аппаратной платформы. С другой стороны, поскольку JSP-технология строится на базе интерпретируемого объектно-ориентированного языка Java, то это дает гарантию переноса приложений, построенных на технологии JSP, на любую платформу, где можно установить виртуальную Java машину.
Страница JSP обслуживает запросы подобно сервлету. Таким образом, цикл жизни и многие особенности JSP pages (в частности динамические аспекты) определены технологией Java Servlet technology, и многое из обсуждаемого в данной главе ссылается на функции, описанные в Java Servlet Technology.
Когда запрос обращается к JSP странице, он обрабатывается специальным сервлетом, который сначала проверяет, старше ли сервлет этой JSP страницы, чем сама JSP page. Если старше, он транслирует эту JSP страницу в класс сервлета и компилирует этот класс. Одно из преимуществ JSP page над сервлетами состоит в том, что процесс «построения» выполняется автоматически.
На этапе трансляции каждый тип данных в JSP page интерпретируется по разному. Исходные данные трансформируются в код, который будет выделять данные в поток, возвращающий данные клиенту. JSP элементы интерпретируются следующим образом:
Для JSP страницы, названной pageName, исходный текст сервлета JSP страницы servlet хранится в файле:
J2EE_HOME/repository/host/web/
Например, исходный текст для страницы с именем index (index.jsp) для примера локализации даты, обсуждаемого в начале главы, был бы назван:
J2EE_HOME/repository/host/web/
Этапы трансляции и компиляции могут выдавать ошибки, которые наблюдаются, только когда страница запрашивается в первый раз. Если ошибка встречается во время трансляции страницы (например, если транслятор встречает плохо сформированный JSP элемент) сервер выбросит ParseException, и исходный файл класса сервлета будет пустым или неполным. Последняя некомплектная строка укажет на некорректный JSP элемент.
Если ошибка встречается во время компиляции (например, ошибка синтаксиса в скриплете), сервер вернет JasperException и сообщение, которое содержит имя сервлета JSP страницы и строку, в которой встретилась ошибка.
Если страница была оттранслирована и откомпилирована, полученный сервлет в основном следует циклу жизни обычного сервлета, описанному в
Servlet Life Cycle: