В курсе рассмотрено создание и развертывание приложений уровня предприятия на основе Java Platform, Enterprise Edition 6 Web Profile. Технологии, представленные в курсе, включают аннотации, Session Enterprise JavaBeans (EJBs), Java Persistence API (JPA), сервлеты, JavaServer Pages (JSPs) , JavaServer Faces (JSF), Contexts and Dependency Injection (CDI), и валидацию бинов. Основное внимание уделяется web-приложениям, доступным из десктопных и мобильных web браузеров на основе JSF технологии.

Слушатели на практике учатся строить end-to-end приложения. Они создают пользовательские web-интерфейсы, прежде всего на основе JSF Facelet страниц, а также JSP и сервлетов. Рассматривается создание как десктопных web-интерфейсов, так и web-интерфейсов для мобильных устройств. Валидация пользовательского ввода осуществляется с использованием JPA и оптимистических блокировок. На практических занятиях изучаются сеансовые EJB компоненты, используемые для реализации транзакций, управляемых контейнером, и увеличивающие производительность приложения посредством кэширования данных. Слушатели обучаются сборке приложения и его развертыванию на сервере приложений (окружение времени выполнения Java EE платформы). Практические занятия выполняются с использованием NetBeans IDE и Oracle WebLogic Server.

Слушатели изучают:

Необходимая предварительная подготовка:

Рекомендуемая предварительная подготовка:

Программа

Java Platform, Enterprise Edition

Предназначение платформы Java EE. Необходимость корпоративных приложений. Различные спецификации Java EE. Сравнение сервисов и библиотек. Java EE Web Profile. Уровни EE-приложения: tiers и layers.

Корпоративные средства разработки и сервера приложений

Предназначение сервера приложений. Потенциальные критерии для выбора сервера приложений. Установка zip-дистрибутива Oracle WebLogic Server 12c. Свойства Java EE компонент. Процесс разработки Java EE приложения. Как сконфигурировать и упаковать Java EE приложения. Перечень EE возможностей, поддерживаемых интегрированными средами разработки (IDEs).

JavaBeans, аннотации и журналирование

Возможности Java SE, широко используемые в корпоративных приложениях. Создание POJO JavaBeans компонент. Журналирование активности и ошибок приложения. Запись в серверные журнальные файлы. Общие Java SE аннотации и их возможности. Разработка Java аннотаций. Роль аннотаций в Java EE.

Модель Web компонент

Описание модели "запрос-отклик" HTTP. Различие между Java сервлетами, JSP и JSF компонентами. Реализация уровней приложения и шаблон MVC. Web компоненты и вопросы потоковой безопасности. Использование Expression Language.

Разработка с использованием JavaServer Faces технологии

Роль JavaServer Faces (JSF) технологии как презентационного механизма. Описание жизненного цикла JSF. Обеспечение авторства JSF страниц с помощью Facelets. Обработка форм и использование управляемых бинов. Использование библиотеки тегов JSF. Использование аннотаций для управления scope экземпляра бина. Использование компонент для итерирования по значениям в коллекции.

Использование AJAX и композитных компонент с применением JSF

Что такое Asynchronous JavaScript and XML (AJAX). Расширение JSF компонент с помощью AJAX. Использование тегов. Интеграция AJAX запроса с жизненным циклом JSF. Определение композитной компоненты. Создание JSF композитных компонент.

Библиотека JSF компонент Apache Trinidad и Mobile разработка

Создание JavaServer Faces (JSF) страниц, использующих Apache Trinidad компоненты. Создание мобильного приложения на основе JSF. Динамическое применение Cascading Style Sheets (CSS) с Trinidad оболочками. Использование HTML5 video тега.

Внедрение зависимости с помощью CDI

Создание классов, совместимых с управляемым бином. Инжектирование управляемых бинов. Квалификация бина, запрашиваемого в точке инжекции. Использование CDI альтернатив.

Использование JSF и Bean Validation

Подход, используемый JSF для преобразования и валидации входных данных. Использование встроенных ограничений валидации, обеспечиваемых JSF. Использование аннотаций встроенных ограничений валидации, обеспечиваемых Bean Validation. Создание настраиваемого ограничения валидации бинов.

Разработка сервлетов

Описание API сервлета. Использование APIs запроса и отклика. Настройка заголовков оклика. Создание текстового и бинарного тела отклика. Обработка загрузки файлов с помощью сервлетов. Перенаправление к JSP с помощью RequestDispatcher. Использование API управления сеансами.

Разработка с помощью JavaServer Pages технологии

Роль JSP технологии как механизма презентации. Авторство JSP страниц. Обработка данных, полученных от сервлетов, на JSP странице. Использование библиотек тегов.

Модель компонент EJB

Роль EJB компонент в Java EE приложении. Достоинства EJB компонент. Операционные характеристики сеансовых компонент, не поддерживающих состояние, поддерживающих состояние, и синглтонов. Создание сеансовых компонент. Создание клиентов сеансовых компонент.

Java Persistence API

Роль Java Persistence API (JPA) в Java EE приложении. Основы объектно-реляционного маппинга. Элементы и окружение компоненты-сущности. Описание жизненного цикла и операционных характеристик компонент-сущностей.

Реализация транзакционной политики

Описание семантики транзакций. Сравнение задания scope транзакций программно и декларативно. Использование JTA для задания scope транзакций программным образом. Реализация транзакционной политики под управлением контейнера. Поддержка оптимистической блокировки путем версионирования компонент-сущностей. Поддержка пессимистической блокировки с помощью EntityManager APIs. Влияние исключений на состояние транзакции.

Обзор Web сервисов и интеграционной технологии

Обзор предназначения интеграционных технологий. Интеграционный уровень в многоуровневой архитектуре приложения. Перечень различных технологий Java EE. Преимущества Web сервисов по сравнению с другими интеграционными технологиями.

Реализация политики безопасности

Преимущества системы безопасности под управлением контейнера. Определение ролей и обязанностей пользователей. Создание политики безопасности на основе ролей. Применение декларативной безопасности. Конфигурирование аутентификации на web уровне.