Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемПавел Яицкий
1 Уровень представления Протокол HTTP, веб-приложение, сервлеты,сеансы
2 Страница 2 Протокол HTTP HTTP «HyperText Transfer Protocol» протокол «прикладного уровня» передачи данных (изначально в виде гипертекстовых документов) Основа WEB Построен поверх TCP/IP Протокол запросов и ответов Без поддержки состояния
3 Страница 3 Язык HTML HTML (от англ. HyperText Markup Language «язык разметки гипертекста») стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме.
4 Страница 4 Язык HTML - пример
5 Страница 5 Протокол HTTP - URL Каждый WEB-ресурс который может быть запрошен у WEB-сервера имеет уникальное имя URL Пример: Формат: протокол://имя_хоста[:порт]/идентификаторы
6 Страница 6 Протокол HTTP - ЗАГОЛОВКИ Раздел заголовка – специфическая информация по запросу/ответу. Строки в HTTP-сообщении, содержащие разделённую двоеточием пару параметр- значение.
7 Страница 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 Страница 8 Протокол HTTP - запрос GET
9 Страница 9 Протокол HTTP - запрос POST
10 Страница 10 Как послать POST и GET запросы из HTML страницы
11 Страница 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 Страница 12 HTTP GET в действии
13 Страница 13 Когда WEB-сервера недостаточно
14 Страница 14 Обеспечение динамической генерации WEB-страниц Для динамической генерации страниц (CGI, PHP) используется дополнительное приложение
15 Страница 15 Сервлет Java-программа, выполняющейся на стороне сервера и расширяющей функциональные возможности сервера Взаимодействует с клиентами посредством принципа запрос-ответ Реализует Servlet интерфейс, который определяет методы жизненного цикла Пакеты javax.servlet и javax.servlet.http обеспечивают интерфейсы и классы для создания сервлетов.
16 Страница 16 Пример сервлета
17 Страница 17 Комментарии к примеру Класс сервлета расширяет класс javax.servlet.http.HttpServlet Думать о HttpServlet и его потомках как о у сервлетах у которых родным языком является HTTP Чаще всего используются один или 2 метода doGet() и doPost() В примере используется метод doGet – это значит что отсылаемая обратно информация будет отображена в браузере клиента
18 Страница 18 Шаблон проектирования «Модель-Представление-Контроллер» MVC (Model-View-Controller) модель данных приложения, пользовательский интерфейс и управляющая логика разделены так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты
19 Страница 19 MVC Model-View-Controller Модель (Model). Модель предоставляет данные (обычно для View), а также реагирует на запросы (обычно от контролера ), изменяя свое состояние.
20 Страница 20 MVC Model-View-Controller Представление (View) Отвечает за отображение информации (пользовательский интерфейс).
21 Страница 21 MVC Model-View-Controller Поведение (Controller). Интерпретирует данные, введенные пользователем, и информирует модель и представление о необходимости соответствующей реакции.
22 Страница 22 Понятие контейнера сервлетов Серверная программа расширяющая возможности WEB-контейнера Обеспечивает жизненный цикл сервлетов в соответствии с правилами, определёнными в спецификациях При получении WEB-контейнером запроса для сервлета, он загружает его в JVM (если он еще не загружен) и выполняет его
23 Страница 23 Среда выполнения сервлетов (servlet container) Stand-alone (автономные): Tomcat Встроеная поддержка сервлетов. Плюс: минимальная конфигурация Минус: Отсутствие необходимой функциональности WEB сервера Add-on (добавочные): WebSphere Плагин к WEB-серверу Плюс: Нет проблемы автономного решения Минус: первоночалная конфигурация очень трудна Embeddable (Внедряемые): JavaServer Облегченная платформа размещения сервлетов которую можно внедрить в другое приложение
24 Страница 24 Каждый запрос выполняется в отдельном потоке
25 Страница 25 Жизненный цикл сервлета
26 Страница 26 Какие методы нужно переопределять HttpServlet содержит множество методов которые позволяю среагировать на определенный тип HTTP запроса В основном используются: doGet() – для обработки get запросов doPost() – для обработки post запросов service() – если нужен обработчик для обоих типов запросов (get и post)
27 Страница 27 Иллюстрация работы HttpServlet
28 Страница 28 Типичный набор действий сервлета [1] 1 Установить MIME type Устанавливаем в заголовке тип возвращаемого ответа (image/jpeg, audio/wav). В большинстве случаев будет text/html, означающий что ответом на запрос будет HTML документ Метод setContentType(String)
29 Страница 29 Типичный набор действий сервлета [2] 2 Установить значения полей заголовка HTTP Это полезно, например, чтобы запретить кэширование браузером и сервером страницы с ответом. Установки заголовка выполняются раньше, чем в выходной поток сервлета будет что-либо записано Метод setHeader(String, String)
30 Страница 30 Типичный набор действий сервлета [3] 3.1 Получить объект класса PrintWriter или OutputStream и записать данные тела ответа Здесь мы непосредственно осуществляем вывод в выходной поток сервлета тела HTTP запроса Методы getWriter() и getOutputStream()
31 Страница 31 Типичный набор действий сервлета [4] 3.2 Перенаправить запрос далее Два типа перенаправления: Передача управления другому ресурсу внутри сервера (использование RequestDispatcher) Дать команду браузеру клиента осуществить GET запрос к другому ресурсу WEB-сервера (Redirect)
32 Страница 32 Примеры перенаправления RequestDispatcher Redirect
33 Страница 33 Параметры сервлета - отправка параметра
34 Страница 34 Получение и обработка параметра
35 Страница 35 Отправка GET запроса с параметром содержащим пробелы Пример URL: или Нужно передать сервлету GET запрос с параметром: myParam = A B C Нужно передать сервлету GET запрос с параметром: myParam = A B C Проблема: Решение:
36 Страница 36 Объект REQUEST Все параметры от клиента принимаются в объекте request. Как только ответ был отправлен браузеру клиента – данные текущего Request теряются.
37 Страница 37 Типичная структура Web проекта
38 Страница 38 Типичная структура развертывания WEB-приложения на сервере TOMCAT
39 Страница 39 Дескриптор развертывания(ДР) WEB модуля Назначение: описывает, каким образом элементы модуля должны развертываться и использоваться в WEB-контейнере Название файла: web.xml Местонахождение: каталог WEB-INF Язык описания: XML
40 Страница 40 Пример ДР
41 Страница 41 Инициализационные параметры приложения и сервлетов
42 Страница 42 Пример иерархии ServletContext и ServletConfig
43 Страница 43 Хранение данных WEB-приложения Проблема: Во время работы WEB-приложения требуется сохранять различные данные на разных уровнях нашего приложения Например: Требуется дать возможность всем сервлетам получить значение параметра конфигурационного файла, или положить в запрос дополнительную информацию для другого сервлета
44 Страница 44 Области видимости атрибутов
45 Страница 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 Страница 46 Слушатели событий приложения Обеспечивают возможность выполнить некоторые действия в ответ на определенные события - такие, как запуск и остановка WEB-приложения или создание новой сессии Java класс реализующий определенный интерфейс. Интерфейс сообщает контейнеру обработчиком какого события класс является.
47 Страница 47 Слушатель ServletContextListener Класс реализующий интерфейс ServletContextListener является обработчиком событий создания и уничтожения контекста приложения public void contextInitialized(ServletContextEvent) вызывается, когда веб-приложение готово к обработке public void contextDestroyed(ServletContextEvent) вызывается, когда веб-приложени готовится к закрытию
48 Страница 48 Пример реализации ServletContextListener
49 Страница 49 Объявление слушателя в ДР
50 Страница 50 Фильтры запросов Домашнее задание к следующей лекции Прочитать и разобраться: Что такое фильтр Область применения фильтров Как создать фильтр Описание фильтра в дескрипторе развертывания
51 Страница 51 Вопросы
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.