E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4...

49
А.Н.Лаврёнов, 2020 Cоздание веб приложений 17.04.2020 Лекция 03 по дисциплине «Cоздание web-приложений » Учитесь работать эффективно и аккуратно Тема 7 : Технология разработки web - приложений ASP.Net MVC. Проектирование web - приложений Тема 8 : Java разработка web - приложения Докладчик : Лаврёнов Александр Николаевич доцент кафедры информационных технологий, кандидат физико-математических наук Телефон рабочий: +375-17-291-21-01 Кабинет: 1-4 E-mail: [email protected]

Transcript of E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4...

Page 1: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

17.04.2020

Лекция 03

по дисциплине

«Cоздание web-приложений »

Учитесь работать

эффективно и аккуратно

Тема 7 : Технология разработки web-приложений

ASP.Net MVC. Проектирование web-приложений

Тема 8 : Java разработка web-приложения

Докладчик: Лаврёнов Александр Николаевич

доцент кафедры информационных технологий,

кандидат физико-математических наук

Телефон рабочий: +375-17-291-21-01

Кабинет: 1-4

E-mail: [email protected]

Page 2: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

17.04.2020

2

Тема 7. Технология разработки web-приложений

ASP.Net MVC. Проектирование web-приложений

Понятие MVC шаблона. Разработка компонент

MVC.

Подходы к разработке web приложений.

Архитектура web-приложений. Рекомендации по

разработке архитектуры web-приложений.

Page 3: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Разработка веб-приложений

3

• Простой протокол передачи данных HTTP

• Простые стандарты описания интерфейса HTML/CSS

• Простой принцип работы «запрос-ответ»

• Абстракции для упрощения разработки:

– Простые – классические ASP, PHP

– Сложные – ASP.NET, JSP

– Гибкие – MVC

Page 4: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Паттерн Model-View-Controller

• Впервые описан в 1979 году– Trygve M. H. Reenskaug/MVC—XEROX PARC 1978-79

• Предназначен для отделения данных и логики

от интерфейса

• Реализаций огромное множество:ASP.NET MVC, Maverick.NET, Monorail, ProMesh.NET,

PureMVC, Mach-II, Model-Glue, FuseBox, Aranea, Cocoon,

Grails, GWT, Spring, Struts, Stripes, Tapestry, WebObjects,

Wicket, JSF, SproutCore, Wawemaker, Dojo, Catalyst,

CGI:Application, Solstice, Gantry, CakePHP, Joomla, Odin

Assemble, Prado, Solar, Zand Framework, Symfony, Django,

Pylons, Enthought, Zope, web2py, Camping, Merb, Nitro,

Ramaze, Ruby on Rails, XForms

4

Page 5: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Термин MVC

MVC – model-view-controller.

Модели, которые содержат или представляют данные,

с которыми работают пользователи.

Представления, которые используются для того, чтобы

обработать некоторые части модели в качестве

пользовательского интерфейса.

Контроллеры, которые обрабатывает входящие

запросы, выполняют операции для модели и выбирают

представления для показа пользователю.

5

Page 6: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Паттерн Model-View-Controller

6

• Model (модель) — модель данных

• View (представление) – интерфейс

• Controller (контроллер)— логика

Model

View Controller

Page 7: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Визуализация MVC паттерна

7

Page 8: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Почему MVC для веб-приложений?

8

• Внешний вид страниц часто изменяется

• Иногда нужно несколько вариантов представления одной и той же страницы

– Разные браузеры (IE, FireFox, Safari, Opera, ...)

– Разные платформы (PC, телефон, КПК, ...)

– Разные модели отображения (графические, текстовые, ...)

• Тестирование приложения без зависимости от интерфейса значительно проще

Page 9: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

ASP.NET MVC Framework

9

• Набор компонентов для создания приложений, основанных на подходе MVC

• Статус MVC Framework - Release Candidate 2

– Поддержка Microsoft (включая jQuery)

– Исходный код открыт

• MVCContrib

– Проект сообщества по расширению возможностей MVC Framework

Page 10: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Запросы в MVC Framework

Браузер Сервер/Product/List/2

ProductController

(Controller)

Product

(Model) БД

Edit

(View)

/Product/Edit/3

List

(View)

10

Page 11: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

ASP.NET MVC(Model2)

11

Page 12: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Жизненный цикл запроса

12

ЗапросТаблица

маршрутовКонтроллер

Действие контроллера

ПредставлениеОтвет

(разметка)

Page 13: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Проект MVC Framework

1

2

3

4

Таблица маршрутизации

Контроллер

Модель

Представление

13

Page 14: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

ASP.NET: MVC и WebForms?

14

• ASP.NET – платформа, лежащая в

основе MVC фреймворка

• MVC и WebForms – два подхода к

созданию веб-приложений на

платформе ASP.NET

• Возможность выбора – это хорошо!

Page 15: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

ASP.NET предоставляет инфраструктуру

15

• Модель провайдеров

• Механизмы кеширования

• Шаблоны страниц

• Состояние сеансов пользователей

• Обработчики страниц

• Управление клиентским кодом

• Управление данными

• Контекст запроса и ответа

• И другое...

Page 16: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Web Forms

16

• Хранение состояния между

обращениями на сервер

• Компонентная модель серверных

элементов управления

• События элементов управления

• Широкая поддержка графической и

декларативной разработки

• Расширяемость «за рамками» сложна

Page 17: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

MVC Framework

17

• Разделение логики и представления

• Прозрачность обработки запроса

• Легковесные объекты

• Простое тестирование

• Отчуждаемые компоненты

• Широкие возможности по расширению

Page 18: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Преимущества MVC

• Архитектура

• Расширяемость

• Жесткий контроль над HTTP и

HTML

• Тестируемость

• Система маршрутизации

18

Page 19: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Сравнение с WebForms

WebForms:

1) ViewState и его размер, что

виляет на размер страницы

и скорость ее загрузки

2) Страница проживает весь

этап жизненного цикла

3) Логика UI тесно связана с

кодом и таким образом,

сложно отделима

4) можно производить unit-

тистирование, таким

образом сложно

использовать подход TDD

MVC:

1) Полный контроль на

генерируемым HTML

2) Чистый HTML и URL

3) Разделение UI и логики

4) Возможность тестирования

5) Модульность и

заменяемость компонентов

6) Нет ViewState

7) Простая интеграция с

современными JS

технологиями и

фреймворками

19

Page 20: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

ASP.Net MVC Pipeline

20

Page 21: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Процесс разработки с MVC Framework

1. Структуры данных - Модель

2. Структура приложения -

Маршрутизация

3. Логика работы - Контроллеры

4. Интерфейс пользователя -

Представление

5. Автоматическое тестирование -

Счастье

21

Page 22: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

Жизненный цикл ASP.NET

MVC

22

Page 23: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Процесс разработки обычного ПО

• Разработка ПО это творческий процесс,

который ведут к созданию инновационных

программных продуктов и систем.

• Процесс разработки ПО – это не единый

монолитный блок работ, который

– принимает на входе некоторые идеи о новом

приложении,

– в качестве результата выдает решение

(продукт), полностью соответствующее

данной идеи.

23

Page 24: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

План разработки web-приложения

1. Сформулировать цель создания сайта.

2. Построить внешний вид сайта.

3. Определить целевую аудиторию.

4. Тщательно спланировать требования к

контенту.

5. Выбрать правильные инструменты для

работы.

Для динамического web-сайта

24

Page 25: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

17.04.2020

25

Page 26: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

17.04.2020

26

Тема 8. Java разработка web-приложения

Платформа Java. Спецификация Java Platform Enterprise

Edition (J2EE). Понятие Application Server. Обзор технологий

платформы J2EE.

Распределенные многоуровневые приложения. J2EE клиенты

(web-клиент, клиент приложения). Web компоненты (сервлеты,

страницы JSP). Корпоративные и\или бизнес компоненты. Роли в

разработке ПО.

Спецификация Servlet. Назначение. Назначение и принципы

применения. Спецификация JSP. Назначение. Основные

возможности. Модели web-приложений на основе технологий

сервлетов и JSP.

Обзор IDE средств для программирования на Java: среды

разработки IntelliJ IDEA, NetBeans, Eclipse. Сборщики Ant, Maven.

Технология JDBC. Состав и архитектура JDBC. Объектная

модель JDBC API. Применение JDBC API. Структура jdbc-

приложения

Page 27: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

27

J2EE - это не конкретный продукт, а набор

спецификаций, устанавливающих правила, которых

следует придерживаться поставщикам конкретной

реализации платформы J2EE, а также

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

Цифра "2" в названии спецификации связана с тем, что

все технологии, охватываемые спецификациями

J2EE, базируются на инструментальном комплекте

поддержки разработок в среде Java - JDK (Java

Development Kit) версии 1.2 и старше.

Page 28: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

28

Java 2 Platform, Enterprise Edition (J2EE) определяет

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

корпоративных приложений.

Java 2 Enterprise Edition - это комплекс

взаимодействующих Java-технологий, базирующихся

на спецификациях, разработанных фирмой Sun

Microsystems (http://java.sun.com/j2ee/),

представляющих стандарт разработки серверных

приложений уровня предприятия.

Page 29: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

29

Технологии J2EE ориентированы на разработку

серверной стороны приложения и облегчают, в

первую очередь, процесс эффективной реализации

среднего уровня (Middle tier), содержащего бизнес-

логику.

Стандарт Java EE расширяет платформу Java Standard

Edition (Java SE) добавляя поддержку веб-сервисов,

модели бизнес компонентов, API управления,

коммуникационных протоколов, распределенных и

веб-приложений. Веб-приложения являются лишь

частью того, что описывает Java EE.

Page 30: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

30

Стандартный Java EE сервер приложений должен

поддерживать такие технологии как EJB (сервер и

контейнер), JNDI, JMS (Java Message Service), JTA

(Java Transaction API), архитектуру J2EE Connector.

Java EE задает контейнеры для серверных

приложений, сервлетов, EJB компонентов.

Такие контейнеры предоставляют функциональность,

позволяющую устанавливать, сохранять и выполнять

поддерживаемые компоненты.

Page 31: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

31

Java EE также предоставляет стандартную архитектуру

для взаимодействия Java EE приложений и серверов

приложений с гетерогенными корпоративными

информационными системами, такими как ERP-

системы, мейнфреймы, системы баз данных и т.д.

Архитектура Java EE Connector предоставляет

средства взаимодействия с корпоративными

системами используя стандартный интерфейс,

известный как адаптер ресурсов (Resource adapter).

Page 32: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

32

J2EE-сервер

EJB-контейнер

Web-контейнер

J2EE - cервисы,

адаптеры, ресурсы

Приложение 3

- EJB-модуль 1

- EJB-модуль 2

- Web-модуль 1Приложение 2

- EJB-модуль 1

- EJB-модуль 2

- Web-модуль 1

- Web-модуль 2

Приложение 1

- EJB-модуль 1

- EJB-модуль 2

- Web-модуль 1

Сервис:

Java Naming Directory (JNDI)

– универсальный сервис

хранения объектов

в иерархической структуре

имен (аналогично файловой

системе)

Ресурс:

DataSource

- объект, позволяющий

приложению

получить доступ к

соединению к БД

Page 33: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

33

Платформа J2EE использует модель многоуровневого

распределенного приложения.

Логически приложение разделено на компоненты в соответствии с

их функциональностью.

Различные компоненты, составляющие J2EE-приложение,

установлены на различных компьютерах (слоях) в зависимости от

их уровня в многоуровневой среде J2EE, которой данный компонент

принадлежит.

• Компоненты клиентского уровня работают на клиентской

машине.

• Компоненты web-уровня работают на J2EE-сервере.

• Компоненты бизнес-уровня работают на J2EE-сервере.

• Программное обеспечение уровня корпоративной

информационной системы (EIS) работает на EIS-сервере.

Page 34: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

34

Приложение Java EE может состоять из нескольких

компонентов, таких как, например, EJB, веб-модули,

адаптеры ресурсов, клиентские модули J2EE.

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

развертывания – XML файл, описывающий

компонент.

Для разворачивания Java EE компонентов применяется

файл в формате «Java архив» (JAR), который

расширяется несколькими дополнительными

форматами в зависимости от того или иного типа

компонента. Формат JAR основан на формате ZIP.

Page 35: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

35

JAR файл может содержать Java классы, XML файлы,

вспомогательные ресурсы, статические HTML файлы

и другие.

Стандартное Java веб-приложение разворачивается в

WAR (Web Application Archive) файле, который

является JAR файлом с расширением WAR.

Стандартное Java EE приложение разворачивается в

EAR (Enterprise Application Archive) файле, который

является JAR файлом с расширением EAR.

Page 36: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

36

WAR файл - это специализированный JAR файл,

содержащий такие компоненты веб-приложения как

сервлеты, JSP файлы, HTML файлы, дескрипторы

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

подобное.

WAR файл может быть развернут на веб-сервере,

таком как Tomcat.

Page 37: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Платформа J2EE

37

EAR файл – это специализированный JAR файл,

содержащий компоненты Java EE приложения, такие

как веб-приложения (WAR), EJB, адаптеры ресурсов

и так далее.

Файл EAR может быть развернут на сервере

приложений Java EE, таком как JBoss, WebLogic или

WebSphere.

Сервер приложений Java EE загружает EAR файлы в

процессе выполнения и устанавливает

обнаруженные в нем компоненты на основе

инструкций, описанных в дескрипторе развертывания

каждого компонента.

Page 38: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Понятие web-компонента

38

• Согласно спецификации J2EE web-компонентами являются– Сервлеты

– JSP-страницы

– Фильтры

– Слушатели событий

• Управление работой web-компонентов возлагается на web-контейнер (сервер web-приложений)

• Спецификация J2EE содержит основные понятия и сведения о технологиях, применяемых в рамках J2EE-платформы. Спецификация доступна по адресу:

http://www.oracle.com/technetwork/java/javaee/downloads/index.html

Page 39: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Что такое web-контейнер?

• Web-контейнер – это инструментальный программный модуль, который управляет сервлетами и JSP-страницами, который работаетв среде J2EE-сервера

J2EE Server

Web-броузер

Web Container

JSP Servlet

EJB Container

Enterprise

Bean

Enterprise

Bean

Другой

клиент

СУБД

39

Page 40: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Понятие web-контейнера

40

• Web-контейнер –стандартизованный

компонент, который занимается системной

поддержкой прикладных программных

компонентов и обеспечивает их жизненный

цикл в соответствии с правилами,

определенными в спецификациях

• Функции web-контейнера

– Управление жизненным циклом компонентов

– Управление безопасностью

– Управление конкурентным доступом

– Перенаправление запросов

Page 41: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Jakarta Tomcat 6.x, 7.х и 8.х

• входит в состав Sun Reference Implementation

• Линейка 6.x (version 6.0.43, 14.01.2014)– Спецификация Servlets – 2.5

– Спецификация JSP – 2.1

• Линейка 7.x (version 7.0.59, 02.04.2014)– Спецификация Servlets – 3.0

– Спецификация JSP – 2.2

• Линейка 8.х (version 8.0.32, 02.04. 2016)– Спецификация Servlets – 3.1

– Спецификация JSP – 2.3

41

Page 42: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Получение и установка Tomcat

• http://jakarta.apache.org

• Полностью написан на Java

• Доступен:– Binary Distributions

• zip

• tar.gz

• 32-bit Windows zip

• 64-bit Windows zip

• 64-bit Itanium Windows zip

• 32-bit/64-bit Windows Service Installer

– Full documentation:• tar.gz

42

Page 43: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Запуск/останов Tomcat

• JAVA_HOME=C:\jdk1.7

• /bin/startup.bat

• /bin/catalina.bat start

• /bin/shutdown.bat

43

Page 44: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Структура каталогов

44

Page 45: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Работа нескольких web-компонентов

в одном web-контейнере

45

Browser1

Browser2

Browser3

web-контейнер

8087

GET http://evm.kture:8087/web-comp1

Web-comp1

Web-comp2

Thread1

Thread3

Thread2

200 OK html

GET http://evm.kture:8087/web-comp2

200 OKhtml

GET http://evm.kture:8087/web-comp1

200 OKhtml

Page 46: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Сервлет

46

• Сервлет - это самостоятельный web-компонент, который, согласно спецификации J2EE, функционирует под управлением web-контейнера

• Сервлет в ответ на полученный от клиента HTTP-запрос динамически генерирует HTTP-ответ: HTML-страницу, XML-документ или другой документ, контент которого корректно отображается в стандартном браузере

• Спецификация технологии сервлетов находится по адресам: http://www.oracle.com/technetwork/java/index-jsp-135475.html

http://jcp.org/en/jsr/detail?id=315

– Последняя версия спецификации – 3.2

Page 47: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Структура web-приложения

47

Компоненты типичного Java EE приложения

Page 48: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Структура web-приложения

48

Традиционно, корпоративное Java EE приложение

определяется как набор следующих компонентов и

технологий:

• The Java Management Extensions (JMX) API

• Java API for XML Processing (JAXP)

• The Java API for XML-based RPC (JAX-

RPC)

• The Java Architecture for XML Binding

(JAXB)

• The SOAP with Attachments API for Java

(SAAJ)

• JavaServer Pages или JavaServer Faces

• Сервисы аутентификации и авторизации

(JAAS)

• JavaBeans Activation Framework (JAF)

• Java Database Connectivity (JDBC)

framework

• EAR файлы

• Java сервлеты

• Enterprise JavaBeans (EJB)

• Архитектура J2EE Connector

• JavaMail

• Java Message Service (JMS)

• Java Persistence API (JPA)

• Java Transaction API (JTA)

Page 49: E d p b 03miu.by/rus/kaf_kit/kaf_download/31925_200654820.pdf · Ramaze, Ruby on Rails, XForms 4 А.Н.Лаврёнов , 2020 C озданиевеб приложений

А.Н.Лаврёнов, 2020 Cоздание веб приложений

Структура web-приложения

49

В свою очередь, веб-приложение Java объединяет подмножество

компонентов и технологий корпоративного приложения, таких

как:

• WAR файлы

• Java сервлеты

• JavaServer Faces или JavaServer Pages

• Java Database Connectivity (JDBC) framework

Популярные фреймворки, такие как Apache Struts, Spring, Hibernate

и другие стирают традиционную грань между корпоративными

приложениями и веб-приложениями. Каждый фреймворк

предлагает свою точку зрения на то, как решить ту или иную

задачу. Каждый фреймворк пытается более эффективно

решить те или иные сложности, возможно используя набор

дополнительных технологий.