Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:JAVA. Серверные приложения
.pdf
Приложения 301
driver — имя используемого драйвера:
Driver="COM.ibm.db2.jdbc.app.DB2Driver"
Обычно указывается первым, поскольку другие теги используют
данные его артибутов:
2. <tsx:dbquery>
Tsx:dbquery — тег, предназначенный для создания SQL-запроса и
обработки результата работы с базой данных. Использует атрибуты
tsx:dbconnect тега, который должен быть определен раньше.
Определен со следующими атрибутами tsx:dbquery:
<tsx:dbquery id="query_id" connection="connection_id" limit="value">
SELECT data FROM table... . // SQL запрос
</tsx:dbquer >
id — уникальное имя запроса. Начинается с имени соединения, обрабатывающего запрос.
connection — имя соединения, должно совпадать с именем соединения, указанного в подобном атрибуте тега id тега tsx:dbconnect.
limit — определяет максимальное количество строк в результате.
Данный атрибут является добавочным, его не обязательно указывать.
3. <tsx:dbmodify>
Tsx:dbmodify — используется для модификации таблиц стандартными SQL-операторами INSERT и UPDATE. Является полным аналогом
tsx:dbquery тегу, только более узкоспециализированным, использует
значения: tsx:dbconnect тег.
tsx:dbmodify — имеет следующие атрибуты:
<tsx:dbmodif connection="connection_id">
INSERT/UPDATE/DELETE SQL операторы.
</tsx:dbmodif >
connection — определяет уникальное имя соединения, имя соединения указывается в теге tsx:dbconnect.
id — атрибут, указывает имя соединения, определенное в теге
tsx:dbconnect.
<tsx:dbmodif connection="conn" >
insert into EMPLOYEE
(EMPNO, FIRSTNME, MIDINIT, LASTNAME, WORKDEPT, EDLEVEL)
values (
'<%= request.getParameter("EMPNO")%>',
'<%= request.getParameter("FIRSTNME")%>',
'<%= request.getParameter("MIDINIT")%>',
'<%= request.getParameter("LASTNAME")%>',
'<%= request.getParameter("WORKDEPT")%>',
'<%= request.getParameter("EDLEVEL")%>')
</tsx:dbmodif >

302 Приложения
4. <tsx:getProperty>
Тег tsx:getProperty является расширением WebSphere стандартного
jsp:getProperty JSP тега.
Данная реализация использует все возможности стандартного тега и
дополняет его своими возможностями, указывая в качестве параметра
property = результат, выполненный при помоши тегов tsx:dbqyery или
tsx:dbmodify.
<tsx:getPropert name="quer id" propert ="DEPTNAME"/>
5. <tsx:repeat>
Тег tsx:repeat используется для возможности повторения обращения
к базе данных при периодическом запросе.
Имеет следующий синтаксис:
<tsx:repeat index=name start=start_index end=end_index>
</tsx:repeat>
Index = идентифицирует индекс.
Start и end добавочные атрибуты. По умолчанию значение каждого
из них представляется 0. Значение параметра end может принимать
максимальное значение 2, 147, 483, 647. Значение end игнорируется, если оно меньше значения start. Можно указывать собственные значения
для этой пары.
<HTML><HEAD> <TITLE>Call Servlet</TITLE> </HEAD>
<H1> Department Listing with a JSP and TSX tags </H1>
<tsx:dbconnect id="conn"
userid="db2admin" passwd="db2admin"
url="jdbc:db2:sample"
driver="COM.ibm.db2.jdbc.app.DB2Driver">
</tsx:dbconnect>
<tsx:dbquery id="dept" connection="conn" >
SELECT * FROM DEPARTMENT ;
</tsx:dbquer >
<tsx:repeat index="deptidx">
<H2> <tsx:getProperty name="dept" propert ="DEPTNAME" /> </H2>
<tsx:dbquery id="emp" connection="conn" >
SELECT FIRSTNME, LASTNAME FROM EMPLOYEE
WHERE WORKDEPT = '<tsx:getProperty name="dept" propert ="DEPTNO"/>';
</tsx:dbquer >
<tsx:repeat index="empidx">
<LI><tsx:getProperty name="emp" propert ="FIRSTNME" />
<tsx:getProperty name="emp" propert ="LASTNAME" />
</tsx:repeat>
</tsx:repeat>
</BODY>
</HTML>

Приложения 303
<HTML>
<HEAD> <TITLE> JSP with Repeating Bean </TITLE> </HEAD>
<H1> CD Listing </H1>
<jsp:useBean id=»vectorBean»class ="itso .servjsp. j psample. VectorBean"
scope="session" />
<tsx:repeat index="i">
<%= vectorBean. getTitle(i)%> b
<B><%= vectorBean. getArtist(i)%> </B>
</tsx:repeat>
</BODY></HTML>

304 Приложения
Приложение B
Использование инструментов фирмы IBM Visual Age for Java
и WEBSphere Studio для создания servlet
Как и другие рассматриваемые серверные компоненты, servlet мож-
но создавать с помощью программных продуктов компании IBM. Сама
компания IBM поставляет на рынок несколько различных средств, помогающих в создании servlet. Семейство продуктов VisualAge и WEBSphere содержат несколько программных пакетов для различных способов программирования. В семействе VisualAge можно выделить два
основных продукта — VisualAge for Java и VisualAgeGenerator, и если
первый представляет готовое средство визуального программирования
на языке Java, то другой больше похож на визуальный генератор готовых модулей. В связи с очень большой разницей в обслуживании данных пакетов, создание servlet будет рассмотрено только с помощью пакета VisualAge for Java.
Другими программными средствами являются пакеты семейства
WEBSphere, Studio и Application Server. Как и следует из самого названия, Application Server только размещает и работает с servlet, в нем отсутствуют средства создания и отладки servlet. А раз так, то рассматриваться сервер как средство создания servlet не будет. Основным продуктом в данном семействе считается WEBSphere Studio, интегрированная
среда разработки не только servlet, но и JSP и JavaBean.
VisualAge for Java
VisualAge предназначен для создания Java-приложений, servlet яв-
ляется 100%-ным Java-приложением. Вопрос, с помощью чего можно
создать servlet?
Для работы с servlet в среде VisualAge имеется инструмент Serv-
letLauncher. Данный инструмент позволяет использовать встроенный
Web-сервер, поддерживающий работу ñ servlet. Кроме этого, в
VisualAge имеет специальный bean, ServletBuilder, представляющий
графические средства создания различных servlet. В отличие от
обычных IDE, VisualAge дает программисту возможность без написания кода, используя только графические представления, создавать
программные модули. В данном случае VisualAge больше напоминает
хорошее CASE средство, чем обычные текстовые редакторы с графическими возможностями. Кроме проектирования и создания кода servlet, в VAJ содержатся специальные утилиты для отладки и запуска
servlet.
Так же как и для JSP, для работы с servlet необходимо установить
дополнительные модули.
Добавление модулей осуществляется выбором в меню File > Quick
Start > Features > Add Features или просто нажатием клавиши F2,
при условии конечно же, что пакет VisualAge установлен и запущен
(рис. П14).

Приложения 305
Ðèñ. Ï14
После чего в появившемся окне выбирают устанавливаемые компо-
ненты:
IBM JSP Execution Monitor
IBM WebSphere Test Environment
IBM Servlet IDE Utility class libraries
IBM Data Access Beans
Последний компонент необходим для работы с базами данных и не
является обязательным для создания servlet в среде VAJ.
Об успешном завершении установки дополнительных модулей говорит
появление дополнительных папок проектов в рабочей области (Workbench). Теперь наступает этап создания непосредственно самого servlet.
Как говорилось выше, в VAJ можно либо вручную набивать код тела servlet, либо воспользоваться графическими средствами имеющимися в VAJ
(рис. П15).
Как уже отмечалось, создание servlet можно полностью переложить
на встроенный JavaBean, называемый Servlet Bilder. С помощью этого
средства программист сразу генерирует не только тело servlet, но и
HTML-страницу, отражающую действия servlet.
Данный JavaBean имеет графические свойства, являющиеся эквива-
лентами HTML-тегов и форм. С помощью обычной операции «перетаскивания» генерация HTML-страниц занимает ничтожное количество
времени, при одновременной генерации основного метода servlet.
После успешной установки компонентов и моделирования или созда-
ния кода servlet для пущей верности в том, что созданный servlet со-

306 Приложения
Ðèñ. Ï15
здан и работает правильно, необходимо установить servlet на Web-сервере, ведь servlet является серверным компонентом. Как обычно, IBM
все предусмотрела и дала возможность разработчику работать в VisualAge с Web-сервером без каких-либо усилий.
Запуск Web-сервера уже рассматривался выше в приложении, по-
священном созданию JSP. В главном меню выбирается Workspace > Tools > Launch.
Об успешном старте WEBSphere Application Server говорит всплы-
вающее окно (рис. П16).
Как обычно, компания IBM представляет сразу несколько решений
одной проблемы, за что ей огромное спасибо. Для любителей использовать ручной ввод в рабочей области VAJ существует проект IBM WEB
Ðèñ. Ï16
Sphere Test Environment пакет com.ibm.servlet, в котором содержится
класс SerRunner, запуск которого идентичен действиям выше вызова
сервера через всплывающие меню.
Теперь можно запускать ServletLauncher. Для этого выбирается со-
зданный класс servlet, Право — кнопочным нажатием во всплывающем
окне выбирается Tools > Servlet Launcher> Launch (рис. П17).

Приложения 307
Ðèñ. Ï17
Ðèñ. Ï18

308 Приложения
Если выбранный класс не является servlet’ом, то появится окно, со-
держащее сообщение «No Java servlets were found».
Теперь используя стандартную операцию вызова ресурса из Web-
браузера можно обратиться к созданному servlet.
При большой необходимости можно изменить некоторые свойства
HTTP-сервера, запускаемого при помощи ServletLauncher. Изменить
свойства Servlet Launcher, такие, как номер порта, исполняемый класс
servlet — engine нужно из меню Tools > Servlet Launcher > Properties.
Свойства, установленные при изменении будут действовать и для дальнейших стартов сервера (рис. П18).
WEB Sphere Studio
В отличие от VisualAge, WEBSphere Studio предназначен для созда-
ния различных Web-компонентов, и не только на языке Java. WEBSphere Studio (WSS) предназначен для разработки управления очень большими сайтами и имеет для этого все необходимые средства, от управления версиями создаваемого кода до графических пакетов по созданию
изображений.
Основными средствами генерации servlet в WSS являются специаль-
ные подпрограммы-волшебники (Wizards) с помощью которых обычный
Web-программист, не знакомый с языком Java, может свободно генерировать servlet. Но в данном случае servlet будут поддерживать только
обработку http-протокола. Для изменения каких-либо данных в сгенерированном servlet программисту необходимо будет воспользоваться
инструментом, способным работать с Java-кодом, например, VisualAge.
Пакеты классов фирмы IBM по работе с servlet.
Итак, три основных Wizard:
1. SQL Wizard.
2. Database Wizard.
3. JavaBean Wizard.
Первые два предназначены для создания servlet в WSS. Чаще всего
WSS генерирует только код или .java-файлы, которые затем следует
откомпилировать встроенным javac-компилятором или перенести в другую среду для дальнейшей разработки.
WSS версии 3.0 и выше поддерживает работу с JDBC 2.0, но по
умолчанию весь генерируемый код создается под JDBC более ранних
версий. Поэтому для каждого нового проекта обязательно надо установить параметры исполняемого WEBSphere Application Server, надо решить, под какую версию Application Server разрабатывается приложение. Установка исполняемой версии Application Server осуществляется
через вызов Properties основного меню WSS (рис. П19).
Все servlet, создаваемые в WSS, основываются на JSP, в свою оче-
редь работающих с SQL-запросами. Поэтому именно от сгенерированного SQL-запроса и будет создаваться сначала JSP, а после и сам servlet.
Другими словами, создание servlet в WSS начинается с работы с СУБД
(рис. П20).
Первым, кто встает на помощь разработчику — SQL Wizard, досту-
чаться до которого можно двумя способами: либо, как обычно, из основ-

Приложения 309
Ðèñ. Ï19
Ðèñ. Ï20

310 Приложения
Ðèñ.. Ï21
ного меню, где выбирается значение Tools>Wizadrs>SQL Wizard, либо
осуществить выбор основного компонента, servlet или JSP в главном окне и вызвать SQL Wizard из всплывающего меню.
SQL WIZARD предназначен для создания .sql-файла, содержащего
SQL-операторы. Действуя поэтапно, SQL Wizard помогает без рукописного ввода написать стандартный запрос на чистом SQL. Осуществляя
достаточно простые движения руками, переходя от одного экрана к
другому, Web-программист легко создает обычный SQL-запрос. Желательно на данном этапе наличие двух факторов: загруженной базы данных и приблизительного знания SQL, дабы не иметь глаза, как у трехпалых инопланетян, установивших операционную систему Windows 95/98/2000/ME (ðèñ. Ï21).
Ðèñ.. Ï22
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
