Курс посвящен разработке корпоративных распределенных web приложений на платформе Java EE.
Курс знакомит с особенностями разработки многозвенных web-приложений на платформе Java EE. Параллельно с разработкой приложения выполняется конфигурирование сервера TomEE, имеющего в своей основе Tomcat.
В процессе разработки приложения рассматриваются и реализуются некоторые паттерны Java EE, в частности презентационный слой, помимо сервлетов и JavaServer Pages (JSP), построен с учетом таких паттернов, как "MVC", "View Helper", "Service to Worker".
Бизнес слой реализован, как с использованием сеансовых EJB компонентов и фреймворка Apache Open EJB. Доступ к базе организован на основе паттерна DAO с применением JDBC и JPA (OpenJPA и EclipseLink).
В курсе также выполняется аутентификация и авторизация клиентов с применением JAAS: как стандартными средствами, так и средствами приложения, с учетом распространения декларативной безопасности в бизнес слой. В процессе курса разрабатывается собственная простая библиотека пользовательских тегов. Завершается курс созданием веб-сервиса на основе JAX-WS, с использованием Apache CXF, и простого клиентского приложения, использующего этот веб-сервис
Успешное обучение по программе позволит специалистам:
1. Введение в технологию сервлетов и JSP
2. Инсталляция сервера TomEE
Загрузка и инсталляция TomEE
Переменные окружающей среды
Директории и файлы
3. Запуск и остановка TomEE. Настройка сервера TomEE для работы с приложением и создание простого сервлета
Простой сервлет
Дескриптор пользовательского приложения, файл web.xml
Как выполнить компиляцию сервлета и инициировать его выполнение
Конфигурирование контекста приложения.
4. Жизненный цикл сервлета
Интерфейсы и классы, необходимые для создания сервлета
Краткое описание структуры запросов и ответов
Создание экземпляра сервлета и его инициализация
Инициализация приложения и контекст приложения
Контейнеры для хранения информации
Сервлет, читающий параметры инициализации.
5. Слушатели и фильтры
Использование фильтров
Интерфейсы и классы, связанные с фильтрами
Простой пример фильтра
Определение слушающих классов типа Listener
6. Отслеживание сеансов
Общие принципы отслеживания сеансов
Жизненный цикл сеанса
Сеансы и события
7. JDBC источники данных, использование пула подключений к базе данных и регистрация событий
Источники данных
Ресурсы приложения
Обеспечение доступа к JDBC драйверу
Получение подключения
Паттерн ServiceLocator
Регистрация событий с помощью SLF4J и logback
Контекст регистратора
Уровень регистрации
Конфигурирование logback
Подключение из сервлета к базе данных.
8. JavaServer Pages (JSP)
Факторы обуславливающие необходимость использования JSP
Простая JSP страница и некоторые особенности синтаксиса
Декларации
Скриптлеты
Выражения
Паттерн проектирования View Helper
XML теги действия
Директивы
Краткий справочник по синтаксису JSP страниц
9. Модель-представление-контроллер (MVC2)
Введение в паттерны проектирования Java EE
Передача запроса с использованием RequestDispatcher
Динамическое изменение уровней регистрации администратором
10. Контроллер с действиями (MVC2)
Основная архитектура работы контроллера
Классы действия Action
Информация, управляющая контроллером, и ее получение из XML файла
Исходный текст контроллера
11. Пример реализации паттернов Session Facade и DAO с использованием EJB компонентов
Паттерны проектирования Session Facade и DAO
Введение в использование Enterprise Beans
Типы сеансовых компонентов
Компоненты, управляемые сообщениями (Message-Driven Beans)
Удаленный (Remote) и локальный (Local) интерфейсы
Класс компонента
Клиентский доступ к сеансовым компонентам через интерфейсы
Бизнес методы
Жизненный цикл сеансовых компонентов
OpenEJB
Пример использования паттернов DAO и Session Facade
12. Библиотека стандартных тегов JSTL и язык выражений (EL)
Стандартная библиотека Standard Tag Library (JSTL)
Директива taglib
Теги и функции библиотеки ядра
Унифицированный язык выражений EL
Включение фрагмента страницы
Пример просмотра каталога
13. Использование одной из реализаций ORM, EclipseLink или OpenJPA , для выполнения запросов
Объектно-реляционное отображение
Создание доменной модели, классы сущности
Тип доступа
Единица постоянства и ее дескриптор, файл persistence.xml
Менеджер сущностей и контекст постоянства
Обновленные реализации фасада сеанса и DAO
14. Отображение коллекций и связей сущностей
Sets, bags, lists, а также отображение типов «значений»
Связи «один-к-одному» на основе внешнего ключа
Отображение связи «многие-ко-многим» с помощью таблицы соединения
15. Создание библиотек пользовательских тегов
Интерфейсы и классы библиотек пользовательских тегов
Дескриптор библиотеки пользовательских тегов
Декларирование библиотеки пользовательских тегов на JSP странице
Пример класса обработчика
16. Аутентификация и авторизация с помощью JAAS Java Authentication and Authorization Service (JAAS)
Группы и роли
Основные классы и интерфейсы
LoginModule
Конфигурирование JAAS
Стандартные способы аутентификации пользователя
Авторизация (контроль доступа к ресурсам)
Инициирование аутентификации и контроль авторизации средствами приложения
17. Выполнения DML операций на примере создания нового клиентского аккаунта
Ввод информации о клиенте
Библиотека для конвертирования
18. Использование Ajax и фреймворка Hibernate Validator для динамической проверки параметров
Объект XMLHttpRequest
Инициирование проверки на стороне клиента с использованием JavaScript функций
Описание и создание валидаторов
Сервлет обрабатывающий асинхронные запросы на стороне сервера
19. Веб-сервис на основе JAX-WS
SOA и веб-сервисы
Программный интерфейс Java API для веб-сервисов основанных на XML (JAX-WS)
Протокол SOAP и REST
Основы разработки веб-сервисов на языке Java
Основной описатель веб-сервисов – WSDL, механизм связывания и базовые типы операций WSDL
Простой JAX-WS клиент
1350 BYN
с учетом НДС 20%