1 Java J2EE. Servlet Технологии. 2 Сервлеты Сервлеты – это компоненты приложений Java Enterprise Edition, выполняющиеся на стороне сервера, способные.

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



Advertisements
Похожие презентации
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Advertisements

Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Язык Java. JSP.. Java. Синтаксис. Перевод строчки эквивалентен пробелу Регистр в именах различается // Комментарии до конца строки /* Многострочные комментарии.
Saint Petersburg, 2012 Java Lecture 11 Web/Servlets.
Уровень представления Протокол HTTP, веб-приложение, сервлеты,сеансы.
Лекция 17 СЕРВЛЕТЫ Сервлеты – компоненты приложений Java 2 Platform Enterprise Edition, выполняющиеся на стороне сервера, способные обрабатывать клиентские.
Программирование на стороне сервера.
Java Server Pages (JSP). JSP Позволяет веб разработчикам динамически генерировать HTML, XML - и другие веб страницы. Страницы компилируются JSP- компилятором.
Saint Petersburg, 2012 Java Lecture 12 JSTL. JSP -> JSTL JSP – хорошо Что делать если хотим добавить условие? Итерирование по списку и вывод каждого элемента.
Web-узлы. Разработка и администрирование.. Часть 1. Web-технология.
WEB- ТЕХНОЛОГИИ Лекция 1. WEB- ПРИЛОЖЕНИЯ 1 Особый тип программ, построенных по архитектуре « клиент - сервер » Основа получение запросов от пользователя.
Web - сервисы. Веб-служба, веб-сервис (англ. web service) идентифицируемая веб-адресом программная система со стандартизированными интерфейсами.англ.веб-адресоминтерфейсами.
Рогов Павел (271 ПИ ) Назаренко Дмитрий (272 ПИ ) Научный руководитель : Гринкруг Е. М. Курсовая работа. Клиент - серверное Android- приложение для планирования.
1 Java J2EE. JSP. 2 Технология Java Server Pages (JSP) Java Server Pages (JSP) обеспечивает разделение динамической и статической частей страницы, результатом.
Веб - сервер Apache Tomcat 6. Содержание лекции 1. Ключевые вопросы организации веб - сервера 1.Понятие веб - сервера и его функции 2.Протокол HTTP 3.Аутентификация.
Компьютерные технологии в метеорологии (Java-технологии) Чукин В. В.
Архитектура метаданных WWW. Язык RDF Архитектура метаданных WWW RDF.
Рассматриваемые темы Введение в кластеринг Кластеринг Stateless session beans Кластеринг Stateful session beans Конфигурация кластеринга 2-1.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
Транксрипт:

1 Java J2EE. Servlet Технологии

2 Сервлеты Сервлеты – это компоненты приложений Java Enterprise Edition, выполняющиеся на стороне сервера, способные обрабатывать клиентские запросы и динамически генерировать ответы на них. интерфейс javax.servlet. Servlet абстрактный класс javax.servlet.http.HttpServlet

3 Архитектура servlet application Servlet Container Servlet Static Content HTTP Request HTTP Response web container or servlet/JSP container Browser

4 Архитектура servlet application + HTTP server HTTP Server Servlet Container Static Content HTTP Request HTTP Response Browser Servlet

5 Работа сервлета Получение запроса (request) Сервлет загружен? Текущий сервлет? Загрузка сервлета Обслуживание запроса Отсылка ответа (response)

6 Tomcat Servlet Container Один из наиболее популярных servlet/JSP контейнеров Написан на Java Представляет собой web-сервер

7 6 шагов для запуска первого сервлета 1. Создайте для своего приложения каталог в иерархии каталогов Tomcat. 2. Напишите код сервлета. You need to import the javax.servlet package and the javax.servlet.http package in your source file. 3. Скомпилируйте исходники. 4. Создайте deployment descriptor. 5. Запустите Tomcat. 6. Обратитесь к сервлету в адресной строке web browser.

8 1 каталог для своего приложения

9 2 Напишите код сервлета. import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorldServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter writer = response.getWriter(); writer.println("Hello, World!"); writer.close(); } HelloWorldServlet.java

10 4. Создайте deployment descriptor hello HelloWorldServlet hello /hello web.xml

11 6 Обратитесь к сервлету в адресной строке web browser – порт устанавливается в настройках Tomcat

12 Пакет javax.servlet Интерфейсы: RequestDispatcher Servlet ServletConfig ServletContext ServletRequest ServletResponse SingleThreadModel Классы: GenericServlet ServletInputStream ServletOutputStream Классы исключений: ServletException UnavailableException

13 Жизненный цикл сервлета определяется тремя методами: init() service() destroy()

14 Метод service() Запрос обслуживается методом service(HttpServletRequest req, HttpServletResponse res) req содержит все параметры запроса в res загружается информация для передачи клиенту. Для каждого нового клиента при обращении к сервлету создается независимый поток, в котором производится вызов метода service(). Метод service() предназначен для одновременной обработки множества запросов. ex01: PrimitiveServlet.java

15 Servlet Config Для каждого сервлета, зарегистрированного в файле web.xml можно определить параметры инициации admin Некоторые методы интерфейса ServletConfig : String getServletName() Enumeration getInitParameterNames() String getInitParameter(String name) ex02: ConfigDemoServlet.java

16 Servlet Context Контейнер создает объект ServletContext, используемый для доступа к информации об окружении сервлета. Методы интерфейса ServletContext : int getMajorVersion. int getMinorVersion. Enumeration getAttributeNames() Object getAttribute(String name) void setAttribute(String name, Object object) void removeAttribute(String name) String getMimeType(String filename) String getRealPath(String filename) String getServerInfo() ServletContext getContext(String uripath) String getServletContextName() Используя объект ServletContext, можно регистрировать события сервлета, сессии и запроса ex03

17 Интерфейс ServletRequest Информация от компьютера клиента отправляется серверу в виде объекта запроса типа HttpServletRequest. Данный интерфейс является производным от интерфейса ServletRequest. Используя методы интерфейса ServletRequest, можно получить много дополнительной информации, в том числе и о сервлете и деталях протокола HTTP, закодированной и упакованной в запрос. ex04: RequestDemoServlet.java firebug

18 методы ServletRequest String getCharacterEncoding() определение символьной кодировки запроса String getContentType() определение MIME-типа (Multipurpose Internet Mail Extension) пришедшего запроса String getProtocol() определение названия и версии протокола String getServerName() String getServerPort() определение имени сервера, принявшего запрос, и порта, на котором запрос был принят сервером соответственно String getRemoteAddr() String getRemoteHost() определение IP адреса клиента, от имени которого пришел запрос, и его имени соответственно String getRemoteUser() определение имени пользователя, выполнившего запрос

19 методы ServletRequest ServletInputStream getInputStream() BufferedReader getReader() получение ссылки на поток, ассоциированный с содержимым полученного запроса если оба методы вызваны последовательно, то генерируется исключение IllegalStateException String getParameter(String name) определение значения параметра по его имени или null, если параметр с таким именем не задан String[ ] getParameterValues(String name) определение всех значений параметра по его имени Enumeration getParameterNames() определение ссылки на список имен всех параметров

20 методы ServletRequest void setAttribute(String name, Object ob) установка значения атрибута компонента, являющегося внутренним параметром для передачи информации между компонентами приложения, например от сервлета к странице JSP или другому сервлету Enumeration getAttributeNames() извлечение перечисления имен атрибутов Object getAttribute(String name) извлечение значения переданного атрибута по имени

21 методы HttpServletRequest Cookie[ ] getCookies() извлечение массива cookie, полученного с запросом. Файл cookie – маленький файл, сохраняемый приложением на стороне клиента String getMethod() определение имени метода доступа к ресурсам, на основе которого построен запрос String getQueryString() извлечение строки HTTP-запроса

22 Интерфейс ServletResponse Генерируемые сервлетами данные пересылаются серверу- контейнеру с помощью объектов, реализующих интерфейс ServletResponse, а сервер, в свою очередь, пересылает ответ клиенту, инициировавшему запрос. Можно получить ссылки на потоки вывода одним из двух методов: ServletOutputStream getOutputStream() извлечение ссылки на поток ServletOutputStream для передачи бинарной информации; PrintWriter getWriter() извлечение ссылки на поток типа PrintWriter для передачи символьной информации; Если оба метода вызваны последовательно, то генерируется IllegalStateException void setContentType(String type) установка MIME-типа генерируемых документов ex04: ResponseDemoServlet.java firebug

23 методы HttpServletResponse void addCookie(Cookie c) добавление cookie к объекту ответа для последующей пересылки на клиентский компьютер void sendError(int sc, String msg) сообщение о возникших ошибках, где sc – код ошибки, msg – текстовое сообщение void setDateHeader(String name, long date) добавление даты в заголовок ответа void setHeader(String name, String value) добавление параметров в заголовок ответа если параметр с таким именем уже существует, то он будет заменен

24 класс HttpServlet Класс HttpServlet расширяет Servlet + реализует метод service(). Метод service() класса HttpServlet служит диспетчером для других методов (doМетод), каждый из которых обрабатывает методы доступа к ресурсам из спецификации HTTP: GET HEAD POST PUT DELETE OPTIONS TRACE ex01: простейший сервлет : MyServlet.java

25 doGet и doPost Когда клиент переходит по адресу URL, который обрабатывается сервлетом, контейнер сервлета перехватывает запрос и вызывает метод doGet() или doPost(). Эти методы вызываются после конфигурации объектов, наследующих интерфейсы HttpServletRequest, HttpServletResponse. Задача методов doGet() и doPost() – взаимодействие с HTTP- запросом клиента и создание HTTP-ответа, основанного на данных запроса. GET is the default method in HTTP If you use the GET method in a form, the parameter name/value pairs are appended to the URL. ex05: RegisterServlet.java

26 Получение параметров из HttpServletRequest Query String - is the string on the URL to the right of the path to the servlet Parameters Multi-Value Parameters ex06: QueryStringDemoServlet.java ParametersDemoServlet.java MultiValueDemoServlet.java

27 Многопоточность Контейнер сервлетов будет иметь несколько потоков выполнения, распределяемых согласно запросам клиентов. Любой доступ к разделяемым ресурсам, которыми могут быть файлы, объекты, необходимо синхронизировать. ex07: ServletSynchronization.java

28 Ключевые моменты