31
Серверные Java- приложения

Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

  • Upload
    7bits

  • View
    108

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Серверные Java-приложения

Page 2: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Клиент - сервер

Page 3: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Протокол HTTP

● HTTP (HyperText Transfer Protocol) – протокол передачи гипертекста

● Работает поверх TCP/IP● Адрес узла – URL● Не сохраняет промежуточное состояние

https://ru.wikipedia.org/wiki/HTTP

Page 4: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Структура протокола HTTP

Каждый HTTP-запрос состоит из 3-х частей:1. Стартовая строка: метод, URL, версия, код состояния2. Заголовки3. Тело запроса

Page 5: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Структура протокола HTTP

Запрос клиента:GET /news/recent HTTP/1.1Host: www.example.com

Стартовая строка ответа сервера:HTTP/1.0 200 OK

Page 6: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

HTTP методы

● GET● POST● PUT● DELETE● …и остальные

Page 7: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Коды состояния HTTP

Код состояния = код ответа + поясняющая фраза

200 – OK404 – Not Found

Page 8: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Заголовки HTTPServer: Apache/2.2.11 (Win32) PHP/5.3.0Last-Modified: Sat, 16 Jan 2010 21:16:42 GMTContent-Type: text/plain; charset=windows-1251Content-Language: ru

Page 9: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Заголовки HTTP

Запрос клиента:

GET /wiki/страница HTTP/1.1Host: ru.wikipedia.orgUser-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5Accept: text/htmlConnection: close(пустая строка)

Page 10: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Заголовки HTTP

Ответ сервера:HTTP/1.1 200 OKDate: Wed, 11 Feb 2009 11:20:59 GMTServer: ApacheX-Powered-By: PHP/5.2.4-2ubuntu5wm1Last-Modified: Wed, 11 Feb 2009 11:20:59 GMTContent-Language: ruContent-Type: text/html; charset=utf-8Content-Length: 1234Connection: close(пустая строка)

Page 11: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Cookie и сессии

Cookie – небольшой фрагмент данных, отправленный сервером и хранимый на компьютере пользователя.

Page 12: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Cookie и сессии

Сессия - механизм, позволяющий однозначно идентифицировать браузер и создающий для этого браузера файл на сервере, в котором хранятся переменные сеанса.

Page 13: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Java

Page 14: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Сервлеты

Предназначены для динамического формирования содержимого ответа на запрос клиента по сети. Выполняются в специальной среде исполнения, создаваемой контейнером сервлетов.

Page 15: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Контейнеры сервлетов

● Apache Tomcat● Jetty● JBoss● GlassFish● IBM WebSphere

Page 16: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Сервлеты

Общая функциональность, не зависит от протокола.

Логика для HTTP

Логика для конкретного приложения

Page 17: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Жизненный цикл

Page 18: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Параметры методов

● javax.servlet.http.HttpServletRequest request

● javax.servlet.http.HttpServletResponse response

Page 19: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Регистрация сервлета

web.xml:<servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>it.sevenbits.FirstServlet</servlet-class></servlet><servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/</url-pattern></servlet-mapping>

Page 20: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

JSP

JSP (JavaServer Pages) — технология, позволяющая веб-разработчикам создавать содержимое, которое имеет как статические, так и динамические компоненты.

Page 21: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Компиляция jsp

Jasper — механизм JSP Tomcat’а. Jasper анализирует JSP-файлы, чтобы компилировать их в Java код, как сервлеты (которые могут быть обработаны с помощью Catalina).

Page 22: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Элементы JSP

Комментарии :

● исходного кода JSP <%-- jsp --%>● HTML-разметки. <!-- html -->

Page 23: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Элементы JSP

Скриптовые элементы

● Объявления <%! одна или несколько деклараций %>

● Выражения <%= одно выражение %>● Скриплеты <% скриплет %>

Page 24: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Объявления JSP<%! private int accessCount = 0; %>Количество обращений к странице с момента загрузки сервера: <%= ++accessCount %>

Page 25: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Выражения JSPТекущее время: <%= new java.util.Date() %>Имя вашего хоста: <%= request.getRemoteHost() %>

Page 26: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Скриплеты JSP<% if (Math.random() < 0.5) { %> <B>Удачного</B> вам дня!<% } else { %> <B>Неудачного</B> вам дня!<% } %>

Скомпилированный:if (Math.random() < 0.5) { out.println("<B>Удачного</B> вам дня!");} else { out.println("<B>Неудачного</B> вам дня!");}

Page 27: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Элементы JSP

Директивы:

● page● include● taglib

<%@ директива атрибут="значение" %>

Page 28: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Элементы JSP

Действия:jsp:text — Вывод текста;jsp:useBean — Поиск или создание нового экземпляра JavaBean;jsp:setProperty — Установка свойств JavaBean;jsp:getProperty — Вставить свойство JavaBean в поток вывода;jsp:include — Подключает файл в момент запроса страницы;jsp:forward — Перенаправляет запрос на другую страницу;jsp:param — Добавляет параметры в объект запроса, например в элементах forward, include, plugin.;

Page 29: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

JSTL<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:set var="myName" value="Alex"/>

<h1>${myName}</h1>

<c:if test="${10 > 9}"> <p>True<p></c:if><c:if test="${10 < 9}"> <p>False<p></c:if>

<c:forEach var="num" items="${list}">

<p>${num}</p>

</c:forEach>

Page 30: Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения

Структура warindex.jsplist.jspWEB-INF/|----web.xml|----lib/| |----mysql-5.jar| |----jstl-1.2.jar|----classes/| |----full.path/| | |----Servlet.class| | |----Repository.classMETA-INF/