Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Технология JavaServer Pages - Индустиальный стандарт.

Технология JavaServer Pages - Индустиальный стандарт Технология JavaServer Pages - Индустиальный стандарт

15 марта 2001 г.

JavaServer Pages, by Julie Basu and Brian Wright

Джули Базу и Бриан Райт

JavaServer Page – простейший путь создания Web-приложений, которые используют динамические данные и могут быть воплощены в жизнь средствами HTML и XML

Источник: журнал Oracle Magazine, no.1, 2001 (http://www.oracle.com/oramag/oracle/01-jan/index.html?o11ind.html)

[От редактора ROIM: по техническим ограничениям нашего издания угловые скобки (<) и (>), которыми выделяются теги, в тексте данной статьи заменены на знак "тильда" (~). Надеюсь, что для опытных читателей эти вынужденные замены не состявят большого неудобства. А.Бачин ]

Существует множество способов создать Web-приложение для работы с динамическими данными, но большинство разработчиков стали использовать JavaServer Pages (JSP), потому что эта технология проста, программы имеют линейную структуру (без циклов) и позволяет использовать возможности Java-платформы.

Технология JavaServer Pages специфицирована Sun Microsystems, как наиболее удобное средство для создания страниц с динамическим содержимым, которые являются результатом работы Web-приложения. JSP тесно связана c технологией Java Servlet. Это позволяет использовать фрагменты Java-кода и вызывать внутренние компоненты Java в HTML-коде (или в другом похожем коде, например, XML) на Web-странице. Все что может быть вставлено в HTML-страницу, можно разместить и на JSP-странице. Вы можете использовать JSP-код вместо JavaScript, Perl или active server pages (ASP). JavaServer Pages основаны на языке Java, поэтому они обеспечивают полный доступ объектно-ориентированным и машинно-независимым возможностям Java.

JSP-страницы перед выполнением транслируются в Java-сервлет (обычно это происходит по требованию, но иногда раньше), он выполняет HTTP-запрос и создает ответ как и многие другие сервлеты. Технология JSP позволяет намного более просто создать код сервлета. Кроме того, JSP-страницы полностью совместимы с сервлетами – JSP-страницы могут включать в себя выходные данные сервлета или передавать свои выходные данные в сервлет, и наоборот сервлеты могут использовать выходные данные JSP-страниц или передавать свои данные JSP-странице. Эти две технологии дополняют друг друга, обеспечивая привлекательную альтернативу другим типам динамического Web-программирования. Другие преимущества JSP и Java платформы:

Разделение динамической бизнес-логики и размещения данных на странице Удобный синтаксис Отсутствие привязки к конкретной операционной системе Доступ к стандартным Java API Простота использования Синтаксис JSP

В стандартном сценарии приложения баз данных, JSP-страницы вызывают такие компоненты, как JavaBean или Enterprise JavaBean, и Bean получает доступ к базе данных уже через стандартные API: JDBC или SQLJ. Следующий пример показывает синтаксис, но не показывает подключение к базе данных. Инструкции JSP заключены в скобки вида ~%…%~.

~HTML~

~HEAD~~TITLE~The Welcome User JSP~/TITLE~~/HEAD~

~BODY~

~% String user=request.getParameter("user"); %~

~H3~Welcome ~%= (user==null) ?

"" : user %~!~/H3~

~P~~B~ Today is ~%= new java.util.Date() %~.

Have a nice day! :-)~/B~~/P~

~B~Enter name:~/B~

~FORM METHOD=get~

~INPUT TYPE="text" NAME="user" SIZE=15~

~INPUT TYPE="submit" VALUE="Submit name"~

~/FORM~

~/BODY~

~/HTML~

В этом примере фрагмент Java-кода берет имя пользователя из HTTP-запроса, выводит имя пользователя и текущую дату. Если ввести имя “Amy”, то получится следующий результат.

Welcome Amy!

Today is Wed Jun 21 13:42 PDT 2000. Have a nice day! :-)

Синтаксические конструкции JSP высоких уровней включают в себя:

Директивы, которые передают информацию для страницы в целом Скриптовые элементы, элементы Java-кода, такие как декларации, выражения, скриплеты, и комментарии (синтаксис этих не сильно отличается друг от друга, например ~%=...%~ используется для выражений и ~%!...%~ для деклараций) Объекты и области их действия, где JSP объекты могут быть явно или неявно созданы и доступны в заданной области, например из JSP-страницы или из HTTP-сессии Действия, которые генерируют выходной объект или реакцию в качестве ответа JSP.

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

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

public class Hello extends HttpServlet

{

public void doGet(HttpServletRequest rq,
HttpServletResponse rsp)

{

rsp.setContentType("text/html");

try {

PrintWriter out = rsp.getWriter();

out.println("~HTML~");

out.println("~HEAD~~TITLE~Welcome~/TITLE~~/HEAD~");

out.println("~BODY~");

out.println("~H3~Welcome " +
((user==null) ? "" : user) + "!~/H3~" );

out.println("~H3~Welcome!~/H3~");

out.println("~P~Today is "

+new java.util.Date()+".~/P~");

out.println("Have a nice day! :-)~/B~~/P~");

out.println("~B~Enter name:~/B~");

out.println("~FORM METHOD=get~");

out.println("~INPUT TYPE="text
" NAME="user" SIZE=15~");

out.println("~INPUT TYPE="submit
" VALUE="Submit name"~

out.println("~/FORM~");

out.println("~/BODY~");

out.println("~/HTML~");

} catch (IOException ioe)

{

// (error processing)

}

}

}

Синтаксис JSP более прост – и что очень важно он позволяет обойти непроизводительные затраты Java, такие как импорт пакетов и конструкции вида try…catch. JSP-транслятор также автоматически обрабатывает значительную часть кода сервлета, перекрывая в Java-файле его выводные данные, например, непосредственное (directly) или косвенное (indirectly) включение стандартного интерфейса javax.servlet.jsp.HttpJspPage или добавление кода для запроса HTTP сессии.

Также нужно отметить, что так как HTML- и XML-текст отображается не средствами Java, в отличие от блоков сервлета, вы можете использовать средства создания HTML и XML для создания JSP-страниц.

Разделение бизнес-логики и представления страницы

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

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

~jsp:useBean id="pageBean" class="mybeans.NameBean"

scope="page" /~

Это пример создает экземпляр, pageBean, класса mybeans.NameBean. Область видимости (доступность) pageBean может быть следующей: страница, запрос, сессия или приложение. Далее на в коде страницы вы можете использовать это экземпляр:

Hello ~%= pageBean.getNewName() %~ !

Это экземпляр напечатает "Hello Julie !", например, если имя "Julie" атрибут newName в pageBean.

Java-разработчик владеет и управляет кодом NameBean класса. Специалист по HTML отвечает за представление и размещение данных на Web-странице, которую видит пользователь, и кроме того он следит за кодом в jsp-файле.

Выполнение JSP в замкнутой оболочке (Nutshell)

Программный модуль, который транслирует, запускает и исполняет JSP-страницу, а также передает запросы для нее, называется JSP-контейнером. Точный состав JSP-контейнера различается в зависимости от реализации продавца, но он всегда состоит из сервлета или набора сервлетов. JSP-контейнер запускается из сервлет–контейнера. JSP-контейнер может быть встроен в Web-сервер, при условии, если Web-сервер написан на Java, а может быть связан с Web-сервером каким-либо другим способом, после чего Web-сервер может спокойно использовать контейнер. Jsp-страница вызывается JSP-контейнером в случае, если в URL есть файл с расширением .jsp. Когда страница запускается впервые, она переводится в сервлет-код, который потом компилируется.

Библиотеки JSP-тэгов

В дополнение к стандартным JSP-тэгам, спецификация JSP позволяет продавцам и покупателям создавать свой собственные библиотеки тэгов, используя стандартный набор тэгов. Библиотека тэгов представляет собой набор определенных тэгов, который может рассматриваться как некое расширение языка JSP. Разработчики могут напрямую использовать элементы этих библиотек при создании JSP-страниц “в ручную”. Кроме того, библиотеки тэгов могут использоваться и средствами разработки Java-приложений. Библиотека тэгов должна быть совместима с различными реализациями Java-контейнера.

Создание библиотеки тэгов включает в себя создание управляющего класса для каждого тэга, и файла описаний библиотеки тэгов (TLD) для библиотеки в целом. Этот файл (TLD) содержит информацию об имени управляющих классов для тэгов.

Направления развития

Sun Microsystems завершила разработку спецификации JSP 1.2 для Servlet 3.2. (В настоящий момент используется JSP спецификация версии 1.1 для Servlet 2.2). Модернизированная

JSP 1.2 включают картирование (mapping) JSP-страниц для XML-документа и улучшает (рафинирует) функционирование поддержки библиотек тегов для пользователей. JSP спецификация делает больший акцент на библиотеках тэгов, многие продавцы создают свои собственные библиотеки (Oracle, например, для доступа к базам данных и SQL-операций). В дополнение, Sun-овский Javasoft планирует стандартные библиотеки тэгов.

Авторы:

Julie Basu -
менеджер разработок в Java Platform group для Oracle - в данный момент является руководителем проекта Oracle JavaServer Pages. Brian Wright – разработчик документации Oracle Java Platform documentation group.

  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте