Уровень представления Протокол HTTP, веб-приложение, сервлеты,сеансы.

Презентация:



Advertisements
Похожие презентации
Saint Petersburg, 2012 Java Lecture 11 Web/Servlets.
Advertisements

Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
WEB- ТЕХНОЛОГИИ Лекция 1. WEB- ПРИЛОЖЕНИЯ 1 Особый тип программ, построенных по архитектуре « клиент - сервер » Основа получение запросов от пользователя.
Урок повторения по теме: «Сила». Задание 1 Задание 2.
ПРОТОКОЛЫ HTTP. HTTP - HyperText Transfer Protocol Протокол уровня приложений Текущая версия HTTP/1.1.
Powerpoint Templates Page 1 Язык разметки гипертекста HTML.
Web-узлы. Разработка и администрирование.. Часть 1. Web-технология.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Hypertext Transfer Protocol (HTTP) Протокол передачи гипертекста.
Масштаб 1 : 5000 Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
Школьная форма Презентация для родительского собрания.
1. Определить последовательность проезда перекрестка
Java Server Pages (JSP). JSP Позволяет веб разработчикам динамически генерировать HTML, XML - и другие веб страницы. Страницы компилируются JSP- компилятором.
Разработал: Учитель химии, биологии высшей квалификационной категории Баженов Алексей Анатольевич.
Ребусы Свириденковой Лизы Ученицы 6 класса «А». 10.
Составители: Крылова Д.Н., Тарабукина Л.Д., Ядрихинская Л.С. г. Якутск, 2014 ФГАОУ ВПО Северо-Восточный федеральный университет им. М.К. Аммосова (методические.
Г. Москва, тел.: +7 (495) , Internet: Слайды курса «Администрирование работы на сервере.
Типовые расчёты Растворы
Глобальная сеть Интернет и её информационные сервисы: Авторы: ученик 10 «А» класса Близняков Александр ученица 10 «А» класса Тихомирова Анна ученик 10.
Транксрипт:

Уровень представления Протокол HTTP, веб-приложение, сервлеты,сеансы

Страница 2 Протокол HTTP HTTP «HyperText Transfer Protocol» протокол «прикладного уровня» передачи данных (изначально в виде гипертекстовых документов) Основа WEB Построен поверх TCP/IP Протокол запросов и ответов Без поддержки состояния

Страница 3 Язык HTML HTML (от англ. HyperText Markup Language «язык разметки гипертекста») стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме.

Страница 4 Язык HTML - пример

Страница 5 Протокол HTTP - URL Каждый WEB-ресурс который может быть запрошен у WEB-сервера имеет уникальное имя URL Пример: Формат: протокол://имя_хоста[:порт]/идентификаторы

Страница 6 Протокол HTTP - ЗАГОЛОВКИ Раздел заголовка – специфическая информация по запросу/ответу. Строки в HTTP-сообщении, содержащие разделённую двоеточием пару параметр- значение.

Страница 7 Протокол HTTP - Запрос Включает в себя лексему метода (GET, POST, OPTION, HEAD…) за которой следует идентификатор ресурса GET – «Найти файл и вернуть содержимое» POST – «Отправить» Пример: GET /wiki/HTTP HTTP/1.1 Host: ru.wikipedia.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/ Firefox/3.0b5 Accept: text/html Connection: close

Страница 8 Протокол HTTP - запрос GET

Страница 9 Протокол HTTP - запрос POST

Страница 10 Как послать POST и GET запросы из HTML страницы

Страница 11 Протокол HTTP - ответ Включает код ответа и тело ответа 1xx – Запрос получен продолжается обработка 2xx – Успех, запрос получен, понят и воспринят 3xx – Перенаправление 4xx – Ошибка клиента 5xx – Ошибка сервера Пример: HTTP/ OK Server: nginx/ Content-Language: ru Content-Type: text/html; charset=utf-8 Content-Length: 1234 Connection: close (далее следует текст запрошенной страницы)

Страница 12 HTTP GET в действии

Страница 13 Когда WEB-сервера недостаточно

Страница 14 Обеспечение динамической генерации WEB-страниц Для динамической генерации страниц (CGI, PHP) используется дополнительное приложение

Страница 15 Сервлет Java-программа, выполняющейся на стороне сервера и расширяющей функциональные возможности сервера Взаимодействует с клиентами посредством принципа запрос-ответ Реализует Servlet интерфейс, который определяет методы жизненного цикла Пакеты javax.servlet и javax.servlet.http обеспечивают интерфейсы и классы для создания сервлетов.

Страница 16 Пример сервлета

Страница 17 Комментарии к примеру Класс сервлета расширяет класс javax.servlet.http.HttpServlet Думать о HttpServlet и его потомках как о у сервлетах у которых родным языком является HTTP Чаще всего используются один или 2 метода doGet() и doPost() В примере используется метод doGet – это значит что отсылаемая обратно информация будет отображена в браузере клиента

Страница 18 Шаблон проектирования «Модель-Представление-Контроллер» MVC (Model-View-Controller) модель данных приложения, пользовательский интерфейс и управляющая логика разделены так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты

Страница 19 MVC Model-View-Controller Модель (Model). Модель предоставляет данные (обычно для View), а также реагирует на запросы (обычно от контролера ), изменяя свое состояние.

Страница 20 MVC Model-View-Controller Представление (View) Отвечает за отображение информации (пользовательский интерфейс).

Страница 21 MVC Model-View-Controller Поведение (Controller). Интерпретирует данные, введенные пользователем, и информирует модель и представление о необходимости соответствующей реакции.

Страница 22 Понятие контейнера сервлетов Серверная программа расширяющая возможности WEB-контейнера Обеспечивает жизненный цикл сервлетов в соответствии с правилами, определёнными в спецификациях При получении WEB-контейнером запроса для сервлета, он загружает его в JVM (если он еще не загружен) и выполняет его

Страница 23 Среда выполнения сервлетов (servlet container) Stand-alone (автономные): Tomcat Встроеная поддержка сервлетов. Плюс: минимальная конфигурация Минус: Отсутствие необходимой функциональности WEB сервера Add-on (добавочные): WebSphere Плагин к WEB-серверу Плюс: Нет проблемы автономного решения Минус: первоночалная конфигурация очень трудна Embeddable (Внедряемые): JavaServer Облегченная платформа размещения сервлетов которую можно внедрить в другое приложение

Страница 24 Каждый запрос выполняется в отдельном потоке

Страница 25 Жизненный цикл сервлета

Страница 26 Какие методы нужно переопределять HttpServlet содержит множество методов которые позволяю среагировать на определенный тип HTTP запроса В основном используются: doGet() – для обработки get запросов doPost() – для обработки post запросов service() – если нужен обработчик для обоих типов запросов (get и post)

Страница 27 Иллюстрация работы HttpServlet

Страница 28 Типичный набор действий сервлета [1] 1 Установить MIME type Устанавливаем в заголовке тип возвращаемого ответа (image/jpeg, audio/wav). В большинстве случаев будет text/html, означающий что ответом на запрос будет HTML документ Метод setContentType(String)

Страница 29 Типичный набор действий сервлета [2] 2 Установить значения полей заголовка HTTP Это полезно, например, чтобы запретить кэширование браузером и сервером страницы с ответом. Установки заголовка выполняются раньше, чем в выходной поток сервлета будет что-либо записано Метод setHeader(String, String)

Страница 30 Типичный набор действий сервлета [3] 3.1 Получить объект класса PrintWriter или OutputStream и записать данные тела ответа Здесь мы непосредственно осуществляем вывод в выходной поток сервлета тела HTTP запроса Методы getWriter() и getOutputStream()

Страница 31 Типичный набор действий сервлета [4] 3.2 Перенаправить запрос далее Два типа перенаправления: Передача управления другому ресурсу внутри сервера (использование RequestDispatcher) Дать команду браузеру клиента осуществить GET запрос к другому ресурсу WEB-сервера (Redirect)

Страница 32 Примеры перенаправления RequestDispatcher Redirect

Страница 33 Параметры сервлета - отправка параметра

Страница 34 Получение и обработка параметра

Страница 35 Отправка GET запроса с параметром содержащим пробелы Пример URL: или Нужно передать сервлету GET запрос с параметром: myParam = A B C Нужно передать сервлету GET запрос с параметром: myParam = A B C Проблема: Решение:

Страница 36 Объект REQUEST Все параметры от клиента принимаются в объекте request. Как только ответ был отправлен браузеру клиента – данные текущего Request теряются.

Страница 37 Типичная структура Web проекта

Страница 38 Типичная структура развертывания WEB-приложения на сервере TOMCAT

Страница 39 Дескриптор развертывания(ДР) WEB модуля Назначение: описывает, каким образом элементы модуля должны развертываться и использоваться в WEB-контейнере Название файла: web.xml Местонахождение: каталог WEB-INF Язык описания: XML

Страница 40 Пример ДР

Страница 41 Инициализационные параметры приложения и сервлетов

Страница 42 Пример иерархии ServletContext и ServletConfig

Страница 43 Хранение данных WEB-приложения Проблема: Во время работы WEB-приложения требуется сохранять различные данные на разных уровнях нашего приложения Например: Требуется дать возможность всем сервлетам получить значение параметра конфигурационного файла, или положить в запрос дополнительную информацию для другого сервлета

Страница 44 Области видимости атрибутов

Страница 45 API для работы с атрибутами Для этих целей используются объекты: context, request и session реализующие соответственно интерфейсы ServletContext, ServletRequest и HttpSession Все они имеют следующие методы: Object getAttribute(String name) void setAttribute(String name, Object value) void removeAttribute(String name) Enumeration getAttributeNames()

Страница 46 Слушатели событий приложения Обеспечивают возможность выполнить некоторые действия в ответ на определенные события - такие, как запуск и остановка WEB-приложения или создание новой сессии Java класс реализующий определенный интерфейс. Интерфейс сообщает контейнеру обработчиком какого события класс является.

Страница 47 Слушатель ServletContextListener Класс реализующий интерфейс ServletContextListener является обработчиком событий создания и уничтожения контекста приложения public void contextInitialized(ServletContextEvent) вызывается, когда веб-приложение готово к обработке public void contextDestroyed(ServletContextEvent) вызывается, когда веб-приложени готовится к закрытию

Страница 48 Пример реализации ServletContextListener

Страница 49 Объявление слушателя в ДР

Страница 50 Фильтры запросов Домашнее задание к следующей лекции Прочитать и разобраться: Что такое фильтр Область применения фильтров Как создать фильтр Описание фильтра в дескрипторе развертывания

Страница 51 Вопросы