Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2013_1 / КСТ / Разработка веб-приложений.pdf
Скачиваний:
157
Добавлен:
23.02.2015
Размер:
2.74 Mб
Скачать

Министерство образования и науки Российской Федерации

Уральский федеральный университет имени первого Президента России Б. Н. Ельцина

В. И. Суханов

РАЗРАБОТКА ВЕБ-ПРИЛОЖЕНИЙ В JAVA EE 6

Учебное пособие

Екатеринбург

УрФУ

2011

УДК 004.438Java EE 6(075.8)

ББК 32.973-08.1.73 С91

Рецензенты:

кафедра прикладной информатики Уральского института экономики, управления и права

(зав. кафедрой — канд. техн. наук, профессор А. Г. Жигалин); С. М. Червинский, канд. техн. наук, главный программист УрО РАН

Суханов, В. И.

С91 Разработка веб-приложений в Java EE 6 : учебное пособие / В. И. Суханов. –

Екатеринбург : УрФУ, 2011. – 272 с.

ISBN 978-5-321-02077-7

Учебное пособие содержит описание технологии Java EE 6 разработки веб-

приложений для работы с базами данных СУБД PostgreSQL. Приведены необходимые

справочные и методические материалы по используемым инструментальным средствам, примеры фрагментов программ, упражнения, полные тексты демонстрационного приложения. Изложение ведется по принципу «от простого к сложному».

Учебное пособие предназначено для студентов направления 231000

«Программная инженерия» УрФУ и может быть полезным программистам, разработ-

чикам веб-приложений корпоративных информационных систем.

Бибилиогр.: 10 назв. Табл. 24. Рис. 35.

УДК 004.438Java EE 6(075.8)

ББК 32.973-08.1.73

ISBN 978-5-321-02077-7

© Уральский федеральный

 

университет, 2011

 

© Суханов В. И., 2011

Оглавление

Обозначения и сокращения 6

введение 7

1. Установка и настройка инструментальных средств 8 1.1. Установка и подготовка к работе операционной системы 8 1.2. Установка программного обеспечения 9 1.3. Создание таблиц в базе данных 10

1.4. Разработка веб-приложений в Netbeans 6.8 15

2. Основы Java EE 6 30 2.1. Распределенные многоуровневые приложения 30 2.2. Контейнеры Java EE 31

2.3. Сервер GlassFish v3 33 2.4. Структура приложения 34 2.5. Конфигурирование приложений 36 2.6. Задание ссылок на ресурсы 38

3. Технология JavaServer Faces TM (JSF) 40

4. Введение в компоненты Facelets 44

4.1. Веб-страницы 44

4.2. Разработка простого приложения Facelets 45 4.3. Использование шаблонов 51

5. Унифицированный язык записи выражений 56

6. Использование технологии JavaServer Faces 59

6.1. Добавление компонент библиотеки HTML на страницу 59

6.2. Использование компонент для таблиц баз данных 62 6.3. Использование тегов библиотеки Core 63

7. Использование конвертеров, слушателей и проверок 65

7.1. Использование стандартных преобразователей 65

7.2. Регистрация слушателей для компонентов 68

8. Внешние объекты (JavaBeans) 73 8.1. Создание класса внешних объектов 73

8.2. Описание свойств бинов 75

8.3. Написание методов внешних бинов 82

8.4. Проверка бинами 85

9. Конфигурирование приложений JavaServer Faces 87

9.1. Файл конфигурации ресурсов приложения 87 9.2. Упорядочение ресурсов конфигурации приложения 88

9.3. Конфигурирование состояния проекта 89

9.4. Выбор конфигурации бина 89 9.5. Регистрация сообщений об ошибках как пакет ресурса 97

3

9.6. Проверка по умолчанию (Default Validator) 98

9.7. Конфигурирование правил навигации (Navigation Rules) 99 9.8. Основные требования приложения JavaServer Faces 101 9.9. Конфигурирование приложений в дескрипторе развертывания 102

10. Технология Java Servlet 106

11. Введение в Java Persistence API 111 11.1. Требования к классам сущностей 111 11.2. Xранимые поля и свойства в классах сущностей 111 11.3. Внедряемые классы в сущностях 118 11.4. Наследование сущностей 119

11.5. Стратегии наследования сущностей с отображением 121 11.6. Управление сущностями 123 11.7. Запросы сущностей 128

12. Примеры хранимых сущностей 129 12.1. Приложение order 129

12.2. Пример получения схемы отношений на основе таблиц БД 138

13. Язык запросов Java Persistence Query Language 151

13.1. Терминология языка запросов 151 13.2. Создание запросов в Java Persistence Query Language 151 13.3. Упрощенный синтаксис языка запросов 153 13.4. Примеры запросов 154 13.5. Запросы с навигацией связанных сущностей 154

13.6. Запросы с другими условными выражениями 156

13.7. Изменение и удаление группы сущностей 157 13.8. Полный синтаксис языка запросов 158 13.9. Примеры запросов Java Persistence Query Language 170

14. Язык запросов CriteriaAPI 173

14.1. Моделирование сущностей с использованием Metamodel API 173 14.2. Основы типизации запросов в Criteria API и Metamodel API 174 14.3. Корни запроса 175 14.4. Использование объединения в запросе 175

14.5. Навигация путей в запросах 176

14.6. Ограничения на результаты запроса 176

14.7. Управление результатами запросов 178 14.8. Исполнение запросов 179

15. Связывание ресурсов 180

15.1. Ресурсы и служба имен JNDI 180

15.2. Объекты DataSource и пулы соединений (Connection Pools) 180 15.3. Внедрение ресурсов 181 15.4. Адаптеры ресурсов 184

15.5. Аннотации метаданных 186

4

15.6. Интерфейс CommonClient 190

16. Безопасность веб-приложений 192 16.1. Краткий обзор 192 16.2. Механизмы обеспечения безопасности 194 16.3. Безопасность сервера предприятия 195 16.4. Использование защищенного соединения SSL 202

16.5. Введение в сертификаты (Certificate) и SSL 205

17. Подготовка приложения к развертыванию 207

18. Пример приложения 212 18.1. Создание проекта веб-приложения 212 18.2. Создание и редактирование файлов веб-приложения 212 18.3.Структура приложения JavaEE 6 215 18.4. Программирование вида для объектов 219 18.5. Дизайн главной страницы 222 18.6. Страница просмотра записей таблицы городов 223

18.7. Страница добавления записей о городах 226 18.8. Страница редактирования записей о городах 228

18.9. Страница удаления записей о городах 230

19. Обработка связей внешних ключей 232 19.1. Разработка класса для вида сущности 233 19.2. Доработка вида для городов 235 19.3. Разработка обзорной страницы 235

19.4. Страница для добавления записей с внешними ключами 238

19.5. Страница для редактирования записей с внешними ключами 240 19.6. Страница для удаления записей с внешними ключами 242

20. Дополнительные функции 244

20.1. Сортировка записей таблицы 244

20.2. Контроль за удалением связанных записей 244 20.3. Контроль ввода наименований 245 20.4. Запросы к БД на языке Java Persistence Query Language 246 20.5. Управление страницами при просмотре таблицы 247

20.6. Создание и просмотр отчетов 258

20.7. Использование шаблонов и стилей 263

20.8. Защита приложения паролем 266

21. Курсовое проектирование

по дисциплине "Клиент-серверные технологии" 268

Заключение 269 Библиографический список 270

5

Обозначения и сокращения

ООП — объектно-ориентированное программирование.

ОС — операционная система.

ПК — персональный компьютер.

СУБД — система управления базами данных.

API — Application Programming Interface, программный интерфейс

разработчика приложений.

AWT — Abstract Windowing Toolkit, общая библиотека компонентов.

CSS — Cascade Style Sheet, таблица каскадных стилей.

EIS — Enterprise Information System, информационная система предприятия.

EL — Expression Language, язык выражений JSTL.

GUI — Graphic User Interface, графический интерфейс с пользователем.

HTML — Hyper Text Markup Language, язык гипертекстовой разметки.

J2EE — JavaTM 2 Platform Enterprise Edition, платформа для разработки корпоративных информационных веб-приложений.

JAR — Java ARchive, файл (ZIP-архив), содержащий часть программы на языке Java.

JavaEE — Java Enterprise Edition, платформа для разработки корпоративных веб-приложений.

JPQL — язык запросов Java Persistence query language.

JRE — Java Runtime Environment, среда исполнения программ на языке Java.

JSP — JavaServer Pages, технология разработки страниц.

JSF — JavaServer Faces, технология разработки страниц.

JSTL — JavaServer Pages Standard Tag Library, стандартная библиотека тегов.

SGML — Standard Generalized Markup Language.

SQL — язык запросов к базам данных.

UI — User Interface, интерфейс с пользователем.

WAR — Web Archive, веб-архив.

WML — wireless markup language, язык разметки для беспроводных систем.

XML — Extensible Markup Language, расширяемый язык разметки.

6

введение

Разработка клиент/серверных приложений с веб-интерфейсами привлекает

внимание программистов, администраторов и пользователей тем, что существенно

упрощается как сама информационная система организации, так и ее эксплуатация. Наличие центрального сервера позволяет организовать надежное хранение данных и

проверкуполномочийнадоступкним.Отсутствиеспециальногопрограммногообеспе-

чения на стороне клиента минимизирует задачи развертывания и администрирования

приложений. Для работы клиенту достаточно иметь компьютер с сетевым подключе-

нием и стандартный интернет-браузер. Пользователи могут выполнять свои функции с любого компьютера внутренней сети организации или, если открыт доступ, с любого

компьютера, подключенного к сети Интернет. Это повышает мобильность, позволяет

расширить круг пользователей далеко за пределами офиса.

Существует множество конкурирующих технологий для создания таких систем. Наиболееизвестныетрадиционныетехнологиииспользуютстандартныевеб-серверы,

например, широко распространенные Apache, Zope, IIS и т. д. На некотором поддер-

живаемом ими языке программирования (Perl, PHP, Python и др.) пишутся программы,

генерирующие динамические страницы в ответ на запросы пользователя, в которых

широко используются хранимые в СУБД данные. В последнее время все большее внимание разработчиков привлекают Java-технологии, обладающие рядом преимуществ.

Наиболее значимыми являются их надежность, поддерживаемая сертификацией ин-

струментов разработки мировыми лидерами программной индустрии, независимость

от платформы, идеология открытого кода и их свободное распространение.

Учебное пособие основано на официальных материалах [1-5], дополненных примерами проверенных автором программ, содержит описание инструментальных

средств, используемых для разработки веб-приложений в технологии JavaTM Platform Enterprise Edition 6 (Java EE 6), которая определяет стандарт для разработки многоуровневых корпоративных приложений. Серверы JavaEE упрощают разработку приложений, предоставляя программистам готовые сервисы в виде стандартизованных

модульных компонент. Часть функций выполняется автоматически, например, про-

верка полномочий, и не требует программирования. Среди большого разнообразия серверов JavaEE здесь рассматривается Sun GlassFish Enterprise Server v3, простой и доступный, но обладающий хорошей функциональностью, достаточной для изучения всех аспектов технологии и разработки корпоративных информационных систем мас-

штаба среднего и малого бизнеса.

Приступая к изучению этих технологий, необходимо знать:

1)программирование для веб (особенности взаимодействия сервера и клиента: как формируется, из каких частей состоит запрос, как он отправляется на сервер, в

каком виде поступает ответ с сервера; язык HTML; каскадные таблицы стилей (CSS);

основы языка JavaScript);

2)язык программирования Java и основные элементы его технологии: среды

разработки, компиляторы, основные библиотеки для обработки данных;

3)работу с СУБД, язык SQL создания таблиц и запросов к базам данных.

Необходимо иметь представление о технологии JDBC для доступа к базам данных из

программ на языке Java.

Кроме того, нужно иметь следующее программное обеспечение (желательно

последних версий): JDK — основу Java-технологии, среду разработки приложений на

языке Java (например, NetBeans 6.8 или Eclipse), СУБД для работы с базами данных, драйверы JDBC для выбранной СУБД, редактор HTML-кода и, наконец, сервер. Кроме того, для работы над материалом полезно воспользоваться примерами из руководства [1], которые частично использованы в данном учебном пособии.

7

Соседние файлы в папке КСТ