Разделы презентаций


Мультимедийный учебный курс Программирование на Java Часть 2. Программирование

Содержание

Понятие Web-компонентаСогласно спецификации J2EE Web-компонентами являютсяСервлетыJSP-страницыФильтрыСлушатели событийУправление работой web-компонентов возлагается на Web-контейнер (сервер Web-приложений)Спецификация J2EE содержит основные понятия и сведения о технологиях, применяемых в рамках J2EE-платформы. Спецификация доступна по адресу:

Слайды и текст этой презентации

Слайд 1 Мультимедийный учебный курс Программирование на Java Часть 2. Программирование

клиент-серверных Java-приложений Лекция 1 ч.1 Сервлеты (базовые средства)
Автор:
Борисенко В.

П.

Мультимедийный учебный курс  Программирование на Java Часть 2. Программирование    клиент-серверных Java-приложений

Слайд 2Понятие Web-компонента
Согласно спецификации J2EE Web-компонентами являются
Сервлеты
JSP-страницы
Фильтры
Слушатели событий

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

на Web-контейнер (сервер Web-приложений)

Спецификация J2EE содержит основные понятия и сведения

о технологиях, применяемых в рамках J2EE-платформы. Спецификация доступна по адресу:
http://www.oracle.com/technetwork/java/javaee/downloads/index.html

Понятие Web-компонентаСогласно спецификации J2EE Web-компонентами являютсяСервлетыJSP-страницыФильтрыСлушатели событийУправление работой web-компонентов возлагается на Web-контейнер (сервер Web-приложений)Спецификация J2EE содержит основные

Слайд 3Что такое Web-контейнер?
Web-контейнер – это инструментальный программный модуль, который управляет

сервлетами и JSP-страницами, который работает в среде J2EE-сервера

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

Слайд 4Понятие Web-контейнера
Web-контейнер –стандартизованный компонент, который занимается системной поддержкой прикладных программных

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

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

Функции Web-контейнера
Управление жизненным циклом компонентов
Управление безопасностью
Управление конкурентным доступом
Перенаправление запросов
Понятие Web-контейнераWeb-контейнер –стандартизованный компонент, который занимается системной поддержкой прикладных программных компонентов и обеспечивает их жизненный цикл в

Слайд 5Jakarta 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
Jakarta Tomcat 6.x, 7.х и 8.хвходит в состав Sun Reference ImplementationЛинейка 6.x (version 6.0.43, 14.01.2014)Спецификация Servlets –

Слайд 6Получение и установка 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

Получение и установка Tomcathttp://jakarta.apache.orgПолностью написан на JavaДоступен:Binary Distributions    zip     tar.gz

Слайд 7Запуск/останов Tomcat
JAVA_HOME=C:\jdk1.7

/bin/startup.bat
/bin/catalina.bat start

/bin/shutdown.bat

Запуск/останов TomcatJAVA_HOME=C:\jdk1.7/bin/startup.bat/bin/catalina.bat start/bin/shutdown.bat

Слайд 8Структура каталогов
/bin – содержит исполняемые jar’ы и соответствующие скриптовые/командные файлы

для windows (.bat) и для *nix (.sh);

/common – классы и

библиотеки (jar’ы), которые доступны как внутренним классам Tomcat’а, так и всем Web-приложениям

/conf – содержит конфигурационные файлы для настройки Tomcat’а (основная конфигурация в файле server.xml)

/logs – журнальные файлы

/server – классы и библиотеки, необходимые для работы Tomcat’а

/shared – классы и библиотеки, общие для всех Web-приложений

/temp – используется JVM для хранения временных файлов

/webapps – каталог по умолчанию для размещения пользовательских Web-приложений

/work – хранит временные (рабочие) файлы Tomcat’а, в том числе скомпилированные JSP
Структура каталогов/bin – содержит исполняемые jar’ы и соответствующие скриптовые/командные файлы для windows (.bat) и для *nix (.sh);/common

Слайд 9Работа нескольких Web-компонентов в одном Web-контейнере
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 OK
html
GET

http://evm.kture:8087/web-comp1
200 OK
html

Работа нескольких Web-компонентов  в одном Web-контейнереBrowser1Browser2Browser3Web-контейнер8087GET http://evm.kture:8087/web-comp1Web-comp1Web-comp2Thread1Thread3Thread2200 OKhtmlGET http://evm.kture:8087/web-comp2200 OKhtmlGET http://evm.kture:8087/web-comp1200 OKhtml

Слайд 10 Сервлет
Сервлет - это самостоятельный 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

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

Слайд 11 Сервлет

Сервлет не имеет привязки к определенному серверу приложений

Взаимодействие с

клиентом происходит только через контейнер

Сервлеты могут быть применены для обработки

запросов любого вида

Обычно сервлеты применяют для обработки HTTP запросов


СервлетСервлет не имеет привязки к определенному серверу приложенийВзаимодействие с клиентом происходит только через контейнерСервлеты могут быть

Слайд 12 Сервлет



Функциональность сервлета программируют в классе сервлета

Для того, чтобы

класс был сервлетом он должен реализовывать интерфейс javax.servlet.Servlet

Сервлет Функциональность сервлета программируют в классе сервлетаДля того, чтобы класс был сервлетом он должен реализовывать интерфейс

Слайд 13Сервлет с точки зрения Java
Главный класс сервлета должен реализовывать интерфейс

javax.servlet.Servlet или расширять класс, реализующий данный интерфейс

Библиотека Java Servlet

API предлагает два класса, реализующих интерфейс Servlet - это классы javax.servlet.GenericServlet (протоколонезависимый сервлет) и javax.servlet.http.HttpServlet (HTTP-сервлет)
Сервлет с точки зрения JavaГлавный класс сервлета должен реализовывать интерфейс javax.servlet.Servlet или расширять класс, реализующий данный интерфейс

Слайд 14Сервлет с точки зрения Java

Для работы и компиляции требуются библиотечные

классы поддержки сервлетов (j2ee.jar или servlet.jar)

Сервлет с точки зрения Java Для работы и компиляции требуются библиотечные классы поддержки сервлетов (j2ee.jar или servlet.jar)

Слайд 15Пример сервлета
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class HelloServlet extends HttpServlet {

public

void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html"); //

Установка типа документа
PrintWriter out = response.getWriter();
out.println(" Доброе Утро !!! ");
out.close();
}

}
Пример сервлетаimport javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class HelloServlet extends HttpServlet {	public void doGet(HttpServletRequest request, 				HttpServletResponse response) 				throws ServletException,

Слайд 16Жизненный цикл сервлета
Жизненный цикл сервлета управляется контейнером, в котором сервлет

был развернут

Когда запрос отображается на сервлет, контейнер выполняет следующие шаги:
Если

экземпляр сервлета не существует, Web-контейнер
Загружает класс сервлета
Создает экземпляр класса (объект) сервлета
Инициализирует экземпляр сервлета, вызывая метод void init(ServletConfig config)
Вызывает метод
void service(ServletRequest req, ServletResponse res),
передавая ему объекты запроса и ответа

Если контейнеру нужно удалить сервлет, он его финализирует, вызывая метод void destroy()
Жизненный цикл сервлетаЖизненный цикл сервлета управляется контейнером, в котором сервлет был развернутКогда запрос отображается на сервлет, контейнер

Слайд 17Метод init()
Метод void init(ServletConfig config)
вызывается один раз в

момент загрузки сервлета контейнером

Создавая Java класс для нового сервлета, разработчик

может переопределить метод init()
с тем, чтобы тот выполнил определенные подготовительные работы

Метод init()Метод void init(ServletConfig config)  вызывается один раз в момент загрузки  сервлета контейнеромСоздавая Java класс

Слайд 18Метод service(…)
Метод service() вызывается при каждом обращении клиента к сервлету

Метод

service() получает из web-контейнера запрос клиента в виде объекта ServletRequest

и строит соответствующий ответ в объекте класса ServletResponse

Создание указанных объектов на основе запроса клиента, а также передача клиенту результата обработки, содержащегося в объекте ServletResponse, возлагаются на web-контейнер
Метод service(…)Метод service() вызывается при каждом обращении клиента к сервлетуМетод service() получает из web-контейнера запрос клиента в

Слайд 19Метод destroy()
Метод destroy() вызывается контейнером в момент уничтожения экземпляра сервлета

Разработчик

может, переопределив этот метод, произвести некоторые операции, такие как освобождение

выделенных ресурсов и т.п.
Метод destroy()Метод destroy() вызывается контейнером в момент уничтожения экземпляра сервлетаРазработчик может, переопределив этот метод, произвести некоторые операции,

Слайд 20Класс HttpServlet
Предназначен для обработки запросов по протоколу HTTP

Метод service() класса

HttpServlet вызывает один из методов doXxx(), в зависимости от типа

запроса:
doGet(HttpServletRequest req, HttpServletResponse resp) - предназначен для обработки GET-запросов

doPost(HttpServletRequest req, HttpServletResponse resp)- предназначен для обработки POST-запросов

doPut(…)
doDelete(…), и др.
Класс HttpServletПредназначен для обработки запросов по протоколу HTTPМетод service() класса HttpServlet вызывает один из методов doXxx(), в

Слайд 21Одинаковая обработка запросов GET и POST
В методе service() класса HttpServlet

в зависимости от типа запроса происходит вызов методов doGet(), doPost()

или др.
Чтобы обеспечить одинаковую обработку запросов сервлетом не рекомендуется переопределять метод service(). Для этого лучше поместить обработчик в doGet(), а в doPost() просто вызвать doGet()

public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

service(request, response)

doGet(request, response)

doPost(request, response)

GET

GET

POST

POST

Одинаковая обработка запросов GET и POSTВ методе service() класса HttpServlet в зависимости от типа запроса происходит вызов

Слайд 22Интерфейс HttpServletRequest
Потомок ServletRequest, содержит информацию о запросе клиента и передается

в виде параметра методам doXxx()

Методы:
String getParameter(String name)
get/setAttribute(String)
String getHeader(String)


InputStream getInputStream()
getRemoteHost()
getRequestURL()
Интерфейс HttpServletRequestПотомок ServletRequest, содержит информацию о запросе клиента и передается в виде параметра методам doXxx()Методы:String getParameter(String name)

Слайд 23Излечение данных из запроса
request.getHeader(“User-Agent”): “Mozilla/4.0 (compa…”

Излечение данных из запросаrequest.getHeader(“User-Agent”): “Mozilla/4.0 (compa…”

Слайд 24Интерфейс HttpServletResponse
Этот интерфейс является наследником ServletResponse и содержит информацию об

ответе клиенту
Объект с этим интерфейсом передается в виде параметра методам

doXxx()

Методы HttpServletResponse
addHeader(String name, String val)
setHeader(String name, String val)
getOutputStream()
getWriter()
reset()
sendError(int code)
setContentLength(int len)
setContentType(String type)
sendRedirect(String location)
Интерфейс HttpServletResponseЭтот интерфейс является наследником ServletResponse и содержит информацию об ответе клиентуОбъект с этим интерфейсом передается в

Слайд 25Установка данных ответа
response.setContentType("text/html")
response.setLocale(Locale.GERMAN);
response.setDateHeader("Date", Calendar.getInstance().getTimeInMillis());

Установка данных ответаresponse.setContentType(

Слайд 26Пример обработки данных формы
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;

public class MyServlet extends

HttpServlet {

/** Метод doGet служит для обработки GET-запросов */
public

void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// Получаем поток вывода сервлета
PrintWriter out = response.getWriter();
// Генерируем форму
out.println("
");
out.println("");
out.println("
");
}
Пример обработки данных формыimport javax.servlet.http.*;import javax.servlet.*;import java.io.*;public class MyServlet extends HttpServlet {	/** Метод doGet служит для обработки

Слайд 27Пример обработки данных формы (продолжение)
public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out =

response.getWriter();
// Получаем параметр запроса
String welcome = request.getParameter("welcome");
out.println("Hello, "+ welcome);
}
Пример обработки данных формы (продолжение)public void doPost(HttpServletRequest request, 			HttpServletResponse response) throws 					ServletException, IOException {  response.setContentType(

Слайд 28Демонстрация работы сервлета

Демонстрация работы сервлета

Слайд 29Функции сервлетов
Чтение данных, переданных пользователем
Например, из HTML-форм

Просмотр информации о

запросе, которая встроена в HTTP-запрос
Сведения о возможностях браузера, cookies, имени

хоста клиента, делающего запрос, и т.д.

Обращение к компонентам бизнес-логики и получение результатов

Генерация ответа
В большинстве случаев предполагает формирование и вывод ответа в виде HTML-документа

Установка параметров HTTP-ответа

Возвращение ответа клиенту
Функции сервлетовЧтение данных, переданных пользователем Например, из HTML-формПросмотр информации о запросе, которая встроена в HTTP-запросСведения о возможностях

Слайд 30Установка Web-приложения
Перед запуском скомпилированного Web-приложения, его необходимо внедрить (развернуть, deploy)

в Web-контейнер

Для этого необходимо создать дескриптор развертования (deployment descriptor) –

XML файл
с информацией о web-приложении

Для удобства все необходимые ресурсы для Web-приложения (классы, jsp и статические HTML-страницы, ресурсы, дескриптор поставки и т.п.) можно упаковать в Web-ARchive (WAR)

Web-контейнер содержит контексты, в которые помещаются Web-приложения
Установка Web-приложенияПеред запуском скомпилированного Web-приложения, его необходимо внедрить (развернуть, deploy) в Web-контейнерДля этого необходимо создать дескриптор развертования

Слайд 31Содержимое Web-приложения
webaps/ - корневой каталог, содержит
JSP-файлы
HTML-файлы
Изображения
др. ресурсы
подкаталог WEB-INF (недоступен

для клиента)
/classes – каталог с откомпилированными классами
/lib – каталог с

библиотеками (Jar)
web.xml – дескриптор развертывания

Создание WAR – так же, как JAR:
jar cvf archiveName.war *
Содержимое Web-приложенияwebaps/ - корневой каталог, содержит JSP-файлыHTML-файлыИзображениядр. ресурсыподкаталог WEB-INF (недоступен для клиента)/classes – каталог с откомпилированными классами/lib

Слайд 32Дескриптор развертывания web.xml
В этом файле описывается
Название и описание web-приложения
Web-страница

по умолчанию
Web-страница, которая будет отображаться в случае возникновения ошибки
Сервлеты и

“маппинг” к ним
Параметры инициализации
Параметры ограничений доступа к ресурсам и т.д.
Дескриптор развертывания web.xmlВ этом файле описывается Название и описание web-приложенияWeb-страница по умолчаниюWeb-страница, которая будет отображаться в случае

Слайд 33Структура дескриптора развертывния web.xml
Файл web.xml – это дескриптор развертывания приложения.

Он может содержать следующие теги:

My Web Application
Description


myservlet


Объявление сервлета -->
MyServlet
com.mycompany.MyServlet


В данном примере: http://host:port/context/myservlet -->

MyServlet
/myservlet


Здесь приведены лишь некоторые из возможных тегов дескриптора развертывания
Структура дескриптора развертывния web.xmlФайл web.xml – это дескриптор развертывания приложения. Он может содержать следующие теги:	My Web Application	Description

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика