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

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

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
Серия «Про ПК»
Р. Р. Мухамедзянов
JAVA
СЕРВЕРНЫЕ ПРИЛОЖЕНИЯ
Москва
СОЛОН-Р
2021
Мухамедзянов Р. Р.
М.: СОЛОН-Р, 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-архитектура для е-com­merсe приложений. Конструирование различных топологий с помощью ключевых элементов, описанных в первой главе. Особое внимание уде­ляется многозвенной архитектуре. Вводятся такие понятия, как e-com­merсe и ключевые элементы, используемые в приложениях e-commerсe.
Глава 3. Использование языка программирования Java при создании e-commerсe приложений, основанных на Web. Описываются все доступ-
ные на настоящий момент способы создания серверных приложений на базе современной платформы компании SUN, J2EE. Читатель знакомит­ся с серверными компонентами, реализованными на языке Java, такими, как JSP, servlet, EJB, а также с основными способами взаимодействия базами данных JDBC и SQLJ. В данной главе описываются основные ти­пы бизнес-сценариев B2C, B2B, B2E, наиболее часто используемые в e­commerс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-com­merс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-сервера или сервера приложений. Но в отличие от стандартных Ja­va-приложений и 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. После знакомства с архитектурой приводит­ся описания основных элементов, создаваемых программистом самих en­terprise 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 основополагающими в современном электрон­ном мире.
Возможность предоставлять пользователю необходимую информа­цию сначала в виде цифр на экране, а впоследствии и в графическом виде ускорила переход от бумажных носителей к электронным. Допол­нительным плюсом использования ЭВМ как средства обработки данных стала скорость. Скорость вычислений больших объемов данных и пере­дача полученных результатов целевым пользователям стало отправной точкой интеграции информационных технологий и обычного бизнеса.
Именно сокращение представительских расходов стало предпосыл­кой переноса информации из мира бумажного в мир электронный — вспомните сайты и почтовую рассылку, появившиеся на рассвете Ин­тернета. После этого Интернет превратился из закрытой сети для воен­ных и ученых в общедоступную среду общения.
После столь успешного начала деловые люди решили сократить рас­ходы и в других областях своей деятельности: набор персонала для