УДК 004.438Java EE
ББК 32.973.26-018.2
Х41
Х41
Хеффельфингер, Дэвид.
Разработка приложений Java EE 6 в NetBeans 7 / Д. Хеффельфингер ; пер. с англ.
Е. Н. Карышева. — 2-е изд., эл. — 1 файл pdf : 332 с. — Москва : ДМК Пресс, 2023. —
Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". —
Текст : электронный.
ISBN 978-5-89818-520-6
Книга представляет собой практическое руководство по использованию возможностей IDE
NetBeans 7 для разработки корпоративных приложений, совместимых со стандартом Java EE 6.
В книге показаны приемы эффективного программирования, задействующие контекстные
меню и «горячие» клавиши, мастера и шаблоны среды NetBeans, затрагиваются вопросы создания,
конфигурирования, развертывания, отладки и профилирования корпоративных приложений
с использованием средств встроенных в IDE NetBeans.
Существенное внимание уделено основным API Java EE в контексте их работы в среде
NetBeans. Подробно рассмотрены возможности NetBeans по автоматизации разработки приложений
с использованием таких API, как Servlet, JSP, JSTL, JSF, JMS, JPA, JDBC, EJB, JAXWS,
JAX-RS, а также по созданию для них инфраструктурных, коммуникационных и конфигурационных
элементов. Затронуты вопросы взаимодействия среды NetBeans с различными
серверами приложений, СУБД и внешними службами.
Приводится пример автоматизированной генерации законченного корпоративного приложения
из существующей схемы базы данных, а также примеры создания веб-сервисов и автоматизированной
генерации их клиентов.
Книга рассчитана на разработчиков желающих разрабатывать Java EE-приложения c использованием
функциональных возможностей IDE NetBeans.
Для чтения книги необходимо иметь некоторый опыт работы с Java, в то время как начального
знакомства с NetBeans и Java EE не требуется.
УДК 004.438Java EE
ББК 32.973.26-018.2
Электронное издание на основе печатного издания: Разработка приложений Java EE 6 в NetBeans 7 /
Д. Хеффельфингер ; пер. с англ. Е. Н. Карышева. — Москва : ДМК Пресс, 2013. — 330 с. — ISBN 978-594074-914-1.
— Текст : непосредственный.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы
то ни было средствами без письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно
существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с
этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.
В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских
прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.
ISBN 978-5-89818-520-6
© Published by Packt Publishing Ltd.
© Оформление, перевод на русский язык
ДМК Пресс, 2013
Стр.5
Содержание
Об авторе ����������������������������������������������������������������������������������������� 5
О рецензентах ��������������������������������������������������������������������������������� 6
Предисловие
13
Вопросы, освещаемые в книге ������������������������������������������������������ 13
Что нужно для чтения этой книги ������������������������������������������������ 14
Для кого эта книга ������������������������������������������������������������������������ 15
Соглашения ���������������������������������������������������������������������������������� 15
Поддержка клиентов ��������������������������������������������������������������������� 16
Сообщения об ошибках ���������������������������������������������������������������� 16
Незаконное воспроизведение содержимого книги ���������������������� 16
Вопросы ����������������������������������������������������������������������������������������� 16
1. Знакомство с NetBeans
17
Введение ���������������������������������������������������������������������������������������� 17
Получение NetBeans ��������������������������������������������������������������������� 18
Установка NetBeans ���������������������������������������������������������������������� 21
Microsoft Windows ������������������������������������������������������������������������ 21
Mac OSx ��������������������������������������������������������������������������������������� 21
Linux и Solaris ������������������������������������������������������������������������������ 22
Другие платформы ����������������������������������������������������������������������� 22
Процедура установки ������������������������������������������������������������������� 22
Первый запуск NetBeans ��������������������������������������������������������������� 27
Конфигурирование NetBeans для разработки
Java EE-приложений ��������������������������������������������������������������������� 28
Интегрирование NetBeans со сторонним сервером приложений ��� 28
Интегрирование NetBeans с СУРБД стороннего производителя ��� 30
Стр.8
8
Содержание
Развертывание нашего первого приложения ������������������������������ 34
Подсказки NetBeans для эффективной разработки �������������������� 37
Автозавершение кода ������������������������������������������������������������������� 37
Шаблоны кода ����������������������������������������������������������������������������� 40
Клавиши быстрого вызова ����������������������������������������������������������� 41
Изучение визуальных индикаторов NetBeans ������������������������������� 44
Резюме �������������������������������������������������������������������������������������������� 46
2. Разработка веб-приложений, содержащих
Сервлеты и JSP
47
Создание нашего первого веб-приложения ��������������������������������� 47
Изменение кода, сгенерированного NetBeans ������������������������������ 52
Разработка сервлета ���������������������������������������������������������������������� 67
Добавление сервлета к нашему приложению ������������������������������� 67
Безопасность веб-приложений ������������������������������������������������������ 75
Реализация аутентификации на основе формы ����������������������������� 77
Конфигурирование безопасности, специфичной для GlassFish ����� 83
Фрагменты JSP ����������������������������������������������������������������������������� 87
Создание фрагмента JSP в NetBeans �������������������������������������������� 87
Резюме �������������������������������������������������������������������������������������������� 90
3. Улучшение функциональности JSP с помощью
JSTL и пользовательских тегов
91
Базовые теги JSTL ������������������������������������������������������������������������� 92
Условное отображение части страницы тегом �������������������� 92
Отображение взаимоисключающей разметки с помощью
тега ����������������������������������������������������������������������������� 95
Итерация по массивам или коллекциям с помощью
тега ��������������������������������������������������������������������������� 98
SQL-теги JSTL ����������������������������������������������������������������������������� 101
Извлечение данных из базы данных с помощью
тега ��������������������������������������������������������������������������� 103
Стр.9
9
Изменение данных в базе данных с помощью
тега ��������������������������������������������������������������������������� 107
Вставка данных в базу данных ���������������������������������������������������� 107
Обновление данных базы данных ����������������������������������������������� 110
Удаление данных из базы данных ����������������������������������������������� 112
Заключительные замечания о JSTL �������������������������������������������� 115
Пользовательские теги JSP ���������������������������������������������������������� 115
Резюме ������������������������������������������������������������������������������������������� 121
4. Разработка веб-приложений с использованием
JavaServer Faces 2.0
122
Введение в JavaServer Faces ��������������������������������������������������������� 122
Разработка нашего первого приложения JSF ����������������������������� 123
Создание нового проекта JSF ����������������������������������������������������� 123
Шаблоны фэйслетов �������������������������������������������������������������������� 142
Добавление шаблона фэйслета к нашему проекту ���������������������� 144
Использование шаблона �������������������������������������������������������������� 144
Составные компоненты �������������������������������������������������������������� 148
Резюме ������������������������������������������������������������������������������������������ 152
5. Создание изящных веб-приложений
с помощью PrimeFaces
153
Наш первый проект PrimeFaces ������������������������������������������������� 153
Использование компонентов PrimeFaces в наших
приложениях JSF ������������������������������������������������������������������������� 156
Представления, снабженные вкладками ������������������������������������ 160
Интерфейсы мастера �������������������������������������������������������������������� 165
Дополнительная информация ���������������������������������������������������� 170
Резюме ������������������������������������������������������������������������������������������� 170
Стр.10
10
Содержание
6. Взаимодействие с базами данных через API
Персистентности Java
171
Создание нашей первой JPA-сущности ��������������������������������������� 172
Добавление к сущности сохраняемых полей ������������������������������� 179
Создание DAO ���������������������������������������������������������������������������� 180
Автоматизированная генерация JPA-сущностей ������������������������ 186
Именованные запросы и JPQL ���������������������������������������������������� 192
Проверка допустимости со стороны бинов ���������������������������������� 193
Отношения сущностей ����������������������������������������������������������������� 194
Генерация JSF-приложений из сущностей JPA �������������������������� 199
Резюме ������������������������������������������������������������������������������������������ 205
7. Реализация уровня бизнес-логики
на сеансовых бинах
206
Введение в Сеансовые бины �������������������������������������������������������� 206
Создание сеансового бина в NetBeans ����������������������������������������� 207
Доступ к бину из клиента ������������������������������������������������������������� 216
Выполнение клиента ������������������������������������������������������������������ 219
Транзакции, управляемые сеансовым бином ����������������������������� 219
Реализация аспектно-ориентированного
программирования с помощью перехватчиков �������������������������� 221
Реализация класса перехватчика ������������������������������������������������� 222
Декорирование EJB аннотацией @Interceptors ���������������������������� 223
Служба таймера EJB ������������������������������������������������������������������� 224
Генерация сеансовых бинов из JPA-сущностей ������������������������� 225
Резюме ������������������������������������������������������������������������������������������� 230
8. Контексты и Инжекция зависимости
231
Введение в CDI ���������������������������������������������������������������������������� 231
Квалификаторы ��������������������������������������������������������������������������� 238
Стереотипы ���������������������������������������������������������������������������������� 242
Типы привязки перехватчика ���������������������������������������������������� 245
Резюме ������������������������������������������������������������������������������������������� 248
Стр.11
11
9. Обмен сообщениями в JMS и Управляемых
сообщением бинах
249
Введение в JMS ���������������������������������������������������������������������������� 249
Создание проекта и ресурсов JMS ���������������������������������������������� 251
Создание пункта назначения JMS ������������������������������������������������ 252
Отправка сообщений пункту назначения ������������������������������������� 255
Обработка сообщений JMS с помощью управляемых
сообщением бинов ������������������������������������������������������������������������ 259
Резюме ������������������������������������������������������������������������������������������� 263
10. Веб-сервисы SOAP в JAX-WS
Введение в веб-сервисы ���������������������������������������������������������������� 264
Создание простого веб-сервиса ��������������������������������������������������� 265
Тестирование нашего веб-сервиса ���������������������������������������������� 270
Разработка клиента для нашего веб-сервиса ������������������������������� 272
Представление EJB в качестве веб-сервисов ������������������������������ 277
Реализация новых веб-сервисов в виде EJB ��������������������������������� 277
Представление существующего EJB в виде веб-сервисов ������������ 280
Создание веб-сервиса из существующего WSDL ������������������������ 282
Резюме ������������������������������������������������������������������������������������������ 284
11. RESTful веб-сервисы в JAX-RS
Создание RESTful веб-сервиса из существующей
базы данных ���������������������������������������������������������������������������������� 286
Анализ сгенерированного кода ��������������������������������������������������� 288
Тестирование нашего RESTful веб-сервиса �������������������������������� 292
Разработка клиента RESTful веб-сервиса ����������������������������������� 296
Резюме ������������������������������������������������������������������������������������������� 301
Приложение А. Отладка корпоративного
приложения отладчиком NetBeans
302
Отладка корпоративных приложений ���������������������������������������� 302
Резюме ������������������������������������������������������������������������������������������ 308
285
264
Стр.12
12
Содержание
Приложение Б. Выявление проблем
с производительностью при помощи
профилировщика NetBeans
Алфавитный указатель
309
Профилирование нашего приложения ��������������������������������������� 309
Резюме ������������������������������������������������������������������������������������������� 313
314
Стр.13