Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:JAVA. Серверные приложения
.pdf
Серия «Про ПК»
Р. Р. Мухамедзянов
JAVA
СЕРВЕРНЫЕ ПРИЛОЖЕНИЯ
Москва
СОЛОН-Р
2021

Мухамедзянов Р. Р.
М92 JAVA. Серверные приложения / Равиль Мухамедзянов. —
М.: СОЛОН-Р, 2021. 336 ñ.
(Серия «Про ПК»)
ISBN 5-93455-134-5
В книге описаны практические вопросы, посвященные работе с Java-серверными приложениями, относящимися как к технологиям электронной коммерции, так и
к Web-приложениям. Описаны работа с сервлетами, распределенные компонеты
EJB. Уделено внимание приемам работы с базами данных при помощи Java.
Предназначена для системных архитекторов, бизнес-аналитиков, программистов
и студентов, изучающих программирование.
Книги издательства «СОЛОН-Пресс» можно заказать наложенным платежом по фиксированной цене. Оформить заказ можно одним из двух способов:
1. послать открытку или письмо по адресу: 123001, Москва,
а/я 82;
2. передать заказ по электронной почте на адрес:
magazine@solon-r.ru.
При оформлении заказа следует правильно и полностью указать адрес,
по которому должны быть высланы книги, а также фамилию, имя и отчество получателя. Желательно указать дополнительно свой телефон и адрес
электронной почты.
Через Интернет Вы можете в любое время получить свежий каталог издательства «СОЛОН-Пресс». Для этого надо послать пустое письмо на робот-автоответчик по адресу: katalog@solon-r.ru.
Получать информацию о новых книгах нашего издательства Вы сможете, подписавшись на рассылку новостей по электронной почте. Для этого
пошлите письмо по адресу: news@solon-r.ru. В теле письма должно быть
написано слово SUBSCRIBE.
ISBN 5-93455-134-5 © Макет и обложка СОЛОН-Р, 2021
© Р. Р. Мухамедзянов

Посвящается
Павловой Марине Викторовне —
красивой женщине и мудрому человеку
ВВЕДЕНИЕ
Конец XX века можно в полной мере назвать началом века информа-
тизации.
Бурное развитие современных информационных технологий привело
к значительному росту роли информационных систем как в деловой
практике, так и в публичной жизни человека.
Одним из этапов новой эпохи можно назвать Java-«период»: — время
развития языка программирования Java, разработанного компанией
SUN. В данный момент Java переживает свой расцвет не столько как
язык программирования, сколько как полностью сформировавшаяся
технология производства доброкачественного программного продукта.
Широкое распространение у программистов таких языков, как С, а в
большей степени C++, привела Java к вершинам популярности использования в различных приложениях. Имея объектно-ориентированную
архитектуру и C++ подобный синтаксис, программист, знающий С++,
может легко перейти на использование языка Java. Развитие Интернета дало Java с ее прекрасными сетевыми возможностями еще один
плюс перед использованием классических языков программирования.
Без преувеличения можно сказать: что на настоящий момент язык
Java — лидер в области создания распределенных приложений, т.е. используемых в сетевых структурах, таких как Интернет.
Для кого предназначена эта книга
Основными читателями данной книги являются системные архитекторы, программисты и бизнес-аналитики, т.е. люди, имеющие непосредственное отношение к созданию программных продуктов для внешних
пользователей.
Главная задача книги — показать всем заинтересованным сторонам
возможности использования языка программирования Java при создании Web-приложений.
Все это говорит о том, что читатель по крайней мере, должен быть
знаком не только со структурой Web-приложений и их ролью в информационных системах, но и желательно с такими понятиями, как сервер
приложений, сервер базы данных, HTTP-сервер, HTML-страница. Конечно же важно также знание синтаксиса самого языка Java, поскольку
данная книга не является учебным пособием по программированию на
данном языке, а в большей степени является справочным руководством
по использованию различных аспектов Java-программирования.

4 Введение
Основная часть книги посвящена описанию API, распространяемому
фирмой SUN Microsystem как дополнения к основному Java API, известному как J2EE (Java 2 Enterprise Edition). Программистам данная
книга будет полезна в большей степени как справочник по различным
способам использования Java в повседневной деятельности. Системные
архитекторы благодаря данной книге смогут найти более выгодное решение использования языка Java. Для бизнес-аналитиков данная книга
интересна как одно из предполагаемых решений переноса бизнес-процессов в электронную сферу с помощью различных Java-технологий.
Содержание книги
Содержание книги основывается на свободно распространяемых спецификациях компании SUN, поставляемых как набор API для создания
приложений уровня предприятия — J2EE.
Книга не является справочником, а также не претендует на роль
учебника по созданию e-commerсe приложении. В книге представлено
краткое описание основных способов создания Web-программ, не только
e-commerсe, с использованием новейших средств, основанных на Java.
Книга также не является полным описанием всех возможных средств
создания Web-приложений. Некоторые широко рекламируемые технологии, используемые в J2EE, такие, как Java Message Service (JMS) и
Java Transaction Service (JTS) и прочие, не будут рассматриваться в
данном обзоре. Но особое внимание будет уделено часто используемым
средствам JSP, E3D и servlet, в российской глубинке. Кроме того, будут
рассмотрены не все Java-компоненты, используемые в Web, а только
серверные решения.
К сожалению, данная книга не является в достаточной мере полной по
всем технологиям Java. Только полный набор API J2EE компании SUN
содержит около 7 мегабайтов информации. Что тогда говорить о других
наборах и инструментах? Также здесь не будут рассматриваться параллельные технологии создания Internet — Intranet-программ, распространяемых другими производителями программного обеспечения.
Выбор пал на наиболее часто используемые в повседневной практике
создания серверных приложений Java-технологии. Часть из них поставляется в наборе API J2EE, другие распространяются по собственным каналам JSP, E3D, servlet.
Книга состоит из шести частей, одна из которых посвящена общим
концепциям e-commerсe, остальные описывают применение языка программирования Java при создании серверных компонентов. Четыре
приложения содержат описание создания Java-серверных компонентов
при помощи средств компании IBM.
Часть 1. Web-приложения и e-commerсe приложения
Первая часть посвящена непосредственно современным тенденциям
развития взаимодействия между различными участниками бизнес-процесса в электронном мире. Описаны компоненты Web-приложений и

Введение 5
различные аспекты, используемые в Web-программировании. В части
e-commerсe описаны основные принципы создания e-приложений, без
непосредственной привязки к языку Java. В ней рассмотрены различные решения для основных бизнес-сценариев электронной коммерции.
Рассмотрены архитектура многоуровневых приложений и методы проектирования и создания e-commerсe приложения для различных платформ различными средствами. В первой части также описываются
основные термины по созданию программных Web-приложений и набор
программных средств по созданию e-commerсe приложений.
Глава 1. Основные компоненты Web-приложений. Читатель знакомится с такими понятиями, как сервер, клиент, протоколы передачи и
источники данных. Краткое описание ключевых элементов Web-технологии, содержащееся в данной главе, вводит читателя в единую сферу
терминологии, применяемой в книге.
Глава 2. Основная архитектура Web-приложений. Описывает уровневые типы архитектур Web-приложений. Web-архитектура для е-commerсe приложений. Конструирование различных топологий с помощью
ключевых элементов, описанных в первой главе. Особое внимание уделяется многозвенной архитектуре. Вводятся такие понятия, как e-commerсe и ключевые элементы, используемые в приложениях e-commerсe.
Глава 3. Использование языка программирования Java при создании
e-commerсe приложений, основанных на Web. Описываются все доступ-
ные на настоящий момент способы создания серверных приложений на
базе современной платформы компании SUN, J2EE. Читатель знакомится с серверными компонентами, реализованными на языке Java, такими,
как JSP, servlet, EJB, а также с основными способами взаимодействия
базами данных JDBC и SQLJ. В данной главе описываются основные типы бизнес-сценариев B2C, B2B, B2E, наиболее часто используемые в ecommerсe приложениях и их реализация с помощью Java-компонентов.
Глава 4. Решения фирмы IBM для создания e-commerce приложений. Рассматриваются программные средства фирмы IBM, предназна-
ченные для создания, размещения, управления e-commerсe приложениями. HTTP server, WEBSphere Application Server, WEBSphere Studio,
VisualAge, DB2, Net.Data. Рассматриваются программные пакеты лидера в области не только финансовых приложений, но и конечно же
e-commerсe приложений. Краткое описание является введением в возможные способы создания e-commerсe приложений и роль программных продуктов компании IBM в сфере проектирования, создания и обслуживания e-commerсe приложений.
Глава 5. Создание e-commerсe приложения. Описываются основные
бизнес-сценарии и основные этапы проектирования e-commerсe приложения. Данная глава содержит описание всех этапов создания e-commerсe приложения.
Глава 6. Пример создания e-commerсe приложения по наиболее
распространенному сценарию В2С. В достаточно общих чертах описы-
вается создание конкретного e-commerсe приложения по бизнес-сценарию, описывающему взаимодействие между покупателем и компаниейпродавцом. Описывается безъязыковой пример создания e-commerсe
приложения.

6 Введение
Часть 2. Java Server Page
Вторая часть посвящена совместному использованию языка Java и
HTML для создания динамических страниц в едином приложении. Новая роль языка Java как скриптового расширения HTML и рождение
JSP. Использование и создание Java Server Page (JSP) описано во второй части книги. Основные объекты JSP и методы работы с ними. Описываются способы совместного использования Java и XML, а также обработка HTML-форм. Описано использование основных компонентов,
применяемых в Java Server Page, таких, как JSP-теги, скриптовые
вставки кода, JavaBean. Рассматривается создание пользовательских
тегов, предназначенных для решения нестандартных задач.
Глава 7. Основные классы SUN по созданию JSP. Глава содержит
описание основных классов по созданию JSP средствами языка Java.
Глава 8. Как работает JSP. Глава содержит исчерпывающую информацию о работе JSP.
Глава 9. Вызов JSP. Описываются способы доступа к JSP.
Глава 10. JSP-конструкции: скриплеты и специальные теги. После
знакомства с JSP и тем, как работают JSP в Web-приложениях, данная
глава знакомит читателя с основными элементами, используемыми в
JSP. Здесь описываются директивы для JSP компилятора и выражения,
используемые в JSP-страницах.
Глава 11. JSP-теги. Основные теги, используемые в JSP предназначены для работы с JavaBean, установки и получения свойств JavaBean-тег
перенаправления запроса <jsp:forward> и <jsp:include> и тег надстроек.
Глава 12. Комментарии в JSP. Как и зачем использовать комментарии
в JSP. Описаны различные способы использования комментариев в JSP.
Глава 13. Обработка исключительных ситуаций. Как и во всяком
приложении, в момент исполнения JSP могут возникнуть непредвиденные различные ситуации. Описаны возможные исключительные ситуации при создании JSP. Здесь также описаны способы обработки исключительных ситуаций при помощи средств, предлагаемых JSP.
Глава 14. Обработка HTML-форм. Описывается, как JSP обрабатывает HTML-формы. Поскольку JSP является носителем HTML-элементов, в данной главе содержится описание работы JSP с HTML-формами.
Глава 15. Миграция с ранней версии 0.91 к 1.0. Описываются различия между версиями API. Количество версий на настоящий момент обязывает описывать разницу между различными версиями.
Глава 16. Создание пользовательских тегов. Глава посвящена тегам,
созданным пользователями. При нехватке возможностей, представляемых стандартными тегами и использованием JavaBean, программисту
дается возможность создавать собственные теги.
Глава 17. Совместное использование XML и JSP. Описывается использование JSP-конструкций в XML-документах.
Часть 3. Servlet
Третья часть содержит описание серверных компонентов servlet, реализованных на языке Java. Описаны работы с сессией, взаимодействия с
базами данных, управление сервером, servlet протоколонезависимые
серверные программные компоненты. Выполняясь на сервере приложе-

Введение 7
ний или Java-сервере, servlet выполняют роль стандартных серверных
скриптов. Как и все Java-приложения, servlet выполняются на JVM
Web-сервера или сервера приложений. Но в отличие от стандартных Java-приложений и JavaBean, servlet достаточно редко используют элементы графического пользовательского интерфейса. Как и обычные
Common Gateway Interface (CGI), скрипты, servlet могут формировать
ответ для клиента, используя события, поступившие из HTML-страницы.
Глава 18. Основные пакеты и классы фирмы SUN. Содержит описание основных пакетов и классов, используемых для создания servlet.
Глава 19. Как работает servlet. Для чего необходимо использовать
servlet в Web-приложениях.
Глава 20. Доступ к servlet. Прежде чем создавать servlet, описываются способы доступа к нему. Знание способов доступа позволит сократить время разработки и тестирования серверного компонента.
Глава 21. Создание servlet. После знакомства пришло время действия. В данной главе описывается создание servlet.
Глава 22. Жизненный цикл servlet. Жизнь servlet и методы жизненного цикла — красная линия данной главы.
Глава 23. Использование класса ServletContext для получения более
обширной информации об исполняемом окружении servlet. Как позна-
комиться с окружением объекта и использовать данные знакомства в
своих целях.
Глава 24. Переадресация из servlet. Методы переадресации клиентского запроса из servlet. Основной задачей всякого Web-приложения
является правильная обработка клиентского запроса. В данной главе
описываются методы перенаправления запроса в другой объект, способный обработать поступивший запрос.
Глава 25. Основная структура servlet. Содержит описание основных
объектов и методов servlet. Детальная информация об объекте внимания, его методы и встроенные объекты. Кое-что об области видимости
внутренних свойств servlet.
Глава 26. Работа servlet с HTTP-протоколом передачи данных. Описываются основные способы работы с cookies-, heders-, cgi-переменными и клиентской сессией. Так как основным протоколом передачи данных в Интернете является http-протокол, то в данной главе описываются способы работы с системными данными http-протокола.
Глава 27. Миграция версии 2.1 к версии 2.2. Различные Web-серверы
поддерживают работу с различными версиями servlet, а с появлением
новых спецификаций проявляется проблема несоответствия используемых методов. Именно различия в наиболее употребляемых версиях описываются в данной главе.
Глава 28. Сравнение между JSP и servlet. JSP и servlet выполняют
одну и ту же работу при использовании http-протокола. Что и когда использовать, в каких случаях JSP нагляднее, а servlet быстрее — описано в данной главе.
Часть 4. Распределенные компоненты Enterprise Java Bean
Четвертая часть описывает транзакционные решения компании
SUN, Enterprise Java Bean. В четвертой части читатель знакомится с

8 Введение
основными понятиями EJB. Рассматриваются ключевые моменты создания EJB и их роль в Web-приложениях. Использование транзакции в
Web-приложениях описывается в начале четвертой части.
Глава 29. Основной пакет компании SUN для работы с EJB. В данной главе описывается весь основной пакет, содержащий классы и интерфейсы по созданию EJB.
Глава 30. Архитектура. EJB представляют из себя отдельные компоненты в отдельном контексте выполнения. Знакомство с EJB начинается
с основных элементов, используемых в EJB-технологии. EJB-сервер,
EJB-контейнер и другие ключевые элементы, их роль в EJB-технологии.
Глава 31. Основные EJB. После знакомства с архитектурой приводится описания основных элементов, создаваемых программистом самих enterprise bean. Два основных EJB, Entity и session bean, методы жизненного цикла и методы управления данными описываются в этой главе.
Глава 32. Последние штрихи. Последним шагом при создании EJB
является написание описателя (deployment descriptor) и помещение его
в jar-архив созданных классов. И уже после создания jar-архива, EJB
можно помещать в контейнер любого EJB-сервера, при этом обязательно надо учитывать специфику каждого EJB-сервера.
Глава 33. Создание EJB-приложения. Разработка enterprise bean
включает ряд требований, необходимых для создания компонентов.
Часть 5. Работа с базами данных, программирования Java
Работе с базами данных посвящена пятая часть книги, в которой
описываются приложения со встроенными в Java-программу SQL-операторами. SQLJ представляет новый способ взаимодействия с различными базами данных. В отличие от основного стандарта JDBC для работы с базами данных, описание которого опущено, SQLJ зарекомендовал
себя как быстрый и надежный способ создания программ для работы с
СУБД. Как и в предыдущих частях, описываются основные методы и
классы SQLJ-приложения, способы создания и обработки ошибок SQLJприложений. Пятая часть содержит краткое описание стандартного
SQL и термины, наиболее часто используемые при работе с СУБД.
Глава 34. Основные задачи SQLJ. Встроенный SQL, задачи и цели.
Создание SQLJ-приложений.
Глава 35. Инсталляция и импортирование пакетов для разработки
SQLJ-приложений. Стандартные пакеты классов, необходимые для
разработки Java-приложений, содержащих встроенные SQL-операторы.
Глава 36. Основные компоненты и схема работы транслятора. Как работает встроенный SQL в Java-приложении, преисполняемая подготовка
SQLJ-приложения. Система выполнения SQLJ-приложений, транслятор.
Глава 37. Встроенные объекты. Определение встроенных объектов.
Объект определения соединения с базой данных — Context. Множественное выполнение SQL-запросов посредством методов объекта Iterator.
Глава 38. Обработка SQL-ошибок и сообщений. Работа над ошибками. Ошибки транслятора и ошибки исполнения. Какое приложение работает без ошибок. Работа с ошибками.
Глава 39. Работа с базой данных. Работа с большими объектами в базе данных. Создание пользовательских функций и пользовательских

Введение 9
типов. Как работает Java-приложение, использующее большие объекты
LOB, и как использовать пользовательские функции по управлению
данными, хранящимися в базе.
Глава 40. Сравнение SQLJ и JDBC. Описывается разница в использовании SQLJ и JDBC при создании приложений, работающих с базами
данных. Вопрос, что лучше, а что быстрее, не праздный для Web-приложений, но для каждого конкретного случая применение одной, пренебрежение другой технологией могут вызвать различные толкования.
Поэтому говорить о достоинствах, а также о недостатках неправомерно.
В данной главе идет описание одной технологии относительно другой
без выставления приоритетов.
Структура книжных частей
Для большей наглядности все части книги, за исключением первой,
подобны между собой. В первых главах рассказывается о самом Javaкомпоненте или технологии. Далее указываются пакеты и классы, необходимые для создания Java-компонента. В каждой части используются
основные элементы описания определенной Java-технологии, начиная
от основных пакетов и классов для данной технологии и заканчивая обработкой ошибок; как самого создания Java-компонента, так и ошибок
исполнения программного модуля данного компонента. Используемые
части кода не являются полностью готовыми приложениями, а показывают пример использования синтаксиса, используемого в различных
компонентах. В следующих главах описываются основные роли создаваемых программ и основные объекты, используемые при построении модулей. И наконец, некоторый пример, содержащий описанное. Каждый
пример имеет построчный комментарий и оцифрованные строки. Для
удобства читателя описание примеров помещено после самого примера.
Каждая часть является полностью независимой от других, поэтому
программист может безболезненно переходить непосредственно к той
теме, которая его больше интересует в данный момент.
Приложения
Приложения описывают создание всех компонентов при помощи
программных продуктов фирмы IBM.
Приложение A описывает создание JSP при помощи WEBSphere
Studio и VisualAge.
Приложение В описывает создание servlet при помощи WEBSphere
Studio и VisualAge.
Приложение С описывает создание SQLJ при помощи VisualAge и
Stored Procedure Builder.
Глоссарий.
Содержит широко используемые в книге аббревиатуры и словосочетания.

— Зачем начинать то, что не сможешь закончить?!
— Для успешного завершения нужны три вещи:
упорство, последовательность и громадные амбиции.
— У меня все это есть.
Автор. «Неопубликованное»
ЧАСТЬ 1. ЭЛЕКТРОННАЯ КОММЕРЦИЯ
Развитие электронной инфраструктуры и попытка избежать ненужных издержек привели мудрых бизнесменов к созданию так называемой электронной коммерции.
В отличие от обычной коммерции, в большинстве случаев основанной
на бумажном документообороте, электронная коммерция работает с новым видом представления документа. Теперь часть информации, наверное, даже бульшая, доступна для клиента без обращения к представителю компании или рекламному материалу, как к печатному так и к
представленному в другом виде. Предпосылкой переноса части документооборота с бумажных носителей на электронные стало бурное развитие информационных технологий. Именно сокращение расходов на
рекламу в печатных изданиях подогрело интерес многих компаний к
новейшим разработкам в области компьютерной индустрии. Первым
шагом внедрения информационных технологий в большой бизнес стало
размещение корпоративной информации в больших электронных хранилищах данных. Данные хранилища, представляли из себя некоторый
довольно-таки однотипный набор информации, собранной воедино, обрабатывать которую и должны были первые ЭВМ. Следующим шагом
стало появление сетевых технологий, обеспечивающих связь не только
электронных хранилищ между собой, но и между другими звеньями информационной структуры предприятия. Именно на данном этапе в информационных технологиях сформировались понятия клиента и сервера. Эти два понятия сталf основополагающими в современном электронном мире.
Возможность предоставлять пользователю необходимую информацию сначала в виде цифр на экране, а впоследствии и в графическом
виде ускорила переход от бумажных носителей к электронным. Дополнительным плюсом использования ЭВМ как средства обработки данных
стала скорость. Скорость вычислений больших объемов данных и передача полученных результатов целевым пользователям стало отправной
точкой интеграции информационных технологий и обычного бизнеса.
Именно сокращение представительских расходов стало предпосылкой переноса информации из мира бумажного в мир электронный —
вспомните сайты и почтовую рассылку, появившиеся на рассвете Интернета. После этого Интернет превратился из закрытой сети для военных и ученых в общедоступную среду общения.
После столь успешного начала деловые люди решили сократить расходы и в других областях своей деятельности: набор персонала для
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
