Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

JAVA. Серверные приложения

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
Приложения 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 и WEB­Sphere содержат несколько программных пакетов для различных спо­собов программирования. В семействе 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 средство, чем обычные текстовые редакторы с графи­ческими возможностями. Кроме проектирования и создания кода ser­vlet, в 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.
Об успешном завершении установки дополнительных модулей говорит
появление дополнительных папок проектов в рабочей области (Work­bench). Теперь наступает этап создания непосредственно самого servlet. Как говорилось выше, в VAJ можно либо вручную набивать код тела serv­let, либо воспользоваться графическими средствами имеющимися в VAJ (рис. П15).
Как уже отмечалось, создание servlet можно полностью переложить
на встроенный JavaBean, называемый Servlet Bilder. С помощью этого средства программист сразу генерирует не только тело servlet, но и HTML-страницу, отражающую действия servlet.
Данный JavaBean имеет графические свойства, являющиеся эквива-
лентами HTML-тегов и форм. С помощью обычной операции «перетас­кивания» генерация HTML-страниц занимает ничтожное количество времени, при одновременной генерации основного метода servlet.
После успешной установки компонентов и моделирования или созда-
ния кода servlet для пущей верности в том, что созданный servlet со-
306 Приложения
Ðèñ. Ï15
здан и работает правильно, необходимо установить servlet на Web-сер­вере, ведь servlet является серверным компонентом. Как обычно, IBM все предусмотрела и дала возможность разработчику работать в Visual­Age с Web-сервером без каких-либо усилий.
Запуск Web-сервера уже рассматривался выше в приложении, по-
священном созданию JSP. В главном меню выбирается Workspace > To­ols > 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. WEBSp­here 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, дабы не иметь глаза, как у трех­палых инопланетян, установивших операционную систему Win­dows 95/98/2000/ME (ðèñ. Ï21).
Ðèñ.. Ï22