- •Тема 1. Разработка простейших веб-приложений
- •Тема 2. Взаимодействие с сервлетом
- •Тема 3. Контекст сервлета
- •Тема 4. Веб-сессия
- •Тема 5. Фильтры и взаимодействие сервлетов
- •Тема 6. Безопасность веб-приложений
- •Тема 7. Введение в JSP
- •Тема 8. Встроенные объекты JSP
- •Тема 9. Стандартные действия и JavaBeans
- •Тема 10. Выражения JSP Expression Language
- •Тема 11. JSP Standard Tag Library
- •Тема 12. Локализация веб-приложений
- •Тема 13. Настраиваемые теги JSP
- •Тема 14. Взаимодействие с БД в веб-приложениях
- •Тема 15. Запросы к БД
Учебное пособие по web-программированию (2013)
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»
Беляев С.А., Романенко С.А.
Разработка web-приложений на языке Java
Санкт-Петербург
2013
-1-
Учебное пособие по web-программированию (2013)
Беляев С.А., Романенко С.А. Разработка web-приложений на языке Java
Спб.: Изд-во СпбГЭТУ «ЛЭТИ», 2013, 69 с.
Учебное пособие «Разработка web-приложений на языке Java» посвящено разработке веб-приложений на Java 1.6 на основании таких технологий как сервлеты, Java Server Pages (JSP) с использованием стандартных и настраиваемых тегов с учётом необходимости локализации приложений и работой с базами данных. Особенностью представленного материала является его небольшой объём, наличие наглядных примеров по всем темам курса, а
также большое количество ссылок на интернет-ресурсы, на которых можно получить дополнительную информацию по представленному материалу.
Учебное пособие применимо в дисциплине «Web-технологии», которая входит в учебные планы подготовки бакалавров по направлению 231000.62 -
«Программная инженерия», и в дисциплине «Разработка web-приложений»,
которая входит в учебные планы подготовки подготовки магистров по направлениям 231000.68 - «Программная инженерия», 231051.68 - «Разработка распределенных программных систем».
© Беляев С.А., Романенко С.А. © СпбГЭТУ «ЛЭТИ», 2013
-2-
Учебное пособие по web-программированию (2013)
Тема 1. Разработка простейших веб-приложений
Модель веб-клиента. Эволюция java-сервлетов. Принципы построения вебприложений. Пример построения простейшего приложения.
Виды приложений (рисунок 1.1):
Рисунок 1.1.
Существуют следующие виды архитектуры приложений: одноуровневые (слои доступа к данным, бизнес-логики и представления информации находятся в одном месте), двухуровневые (отделяется слой доступа к данным), трёхуровневые (все три уровня реализуются отдельно и независимо). В общем случае web-приложения являются трёхуровневыми.
Ключевые преимущества web-приложений по сравнению с настольными приложениями:
Проще доступ к информации
Проще поддержка и меньше стоимость распространения
Независимость от платформы
Широкая доступность
Взаимодействие с web-приложением осуществляется с использованием HTTP протокола (запрос и ответ сервера) — рисунок 1.2.
Рисунок 1.2.
HTTP-клиент, как и web-браузер, открывает HTTP-соединение. Порт — это канал, по которому передаётся информация (по умолчанию — 80). Пример: для получения картинок в HTML-странице отправляются отдельные HTTP запросы.
Структура HTTP-запроса: Строка запроса (URL):
http://ru.wikipedia.org/wiki/HTTP
Заголовок запроса:
-3-
Учебное пособие по web-программированию (2013)
GET /wiki/HTTP HTTP/1.1 Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509
Firefox/3.0b5
Accept: text/html Connection: close (пустая строка)
Структура HTTP-ответа: Строка состояния. Заголовок ответа:
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1 Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT Content-Language: ru
Content-Type: text/html; charset=utf-8 Content-Length: 1234
Connection: close (пустая строка)
(далее следует запрошенная страница в HTML)
Параметры в HTTP-запросе в общем случае передаются с помощью webформ. Пример web-формы приведён на рисунке 1.3.
Рисунок 1.3.
Параметры HTTP-запроса могут передаваться с использованием метода GET или POST (рисунок 1.4). Обратите внимание, что в POST параметры не видны, а в GET параметры видны. При этом GET ограничено по длине, если в строке не поместится, то информация будет утеряна.
-4-
Учебное пособие по web-программированию (2013)
Рисунок 1.4.
Кроме преимуществ web-сервера имеют и свои ограничения:
Статические web-страницы разрабатываются дизайнерами
Динамические — изменяются клиентом
Web-сервер будет недоступен
во время перезагрузки
поддержки
большой загрузки
вирусы
атака червей
Разработка динамических web-страниц может осуществляться с использованием самых разных технологий. Первая и до сих пор используемая технология динамических web-страниц — CGI. При этом процесс обработки запроса выглядят, как приведено на рисунке 1.5.
Рисунок 1.5.
Недостатки CGI:
Низкая эффективность
При реализации на Perl интерпретатор при каждом запросе перезапускается
Сервлеты, разрабатываемые на языке Java, решают проблемы CGI (эффективность выше, можно обойтись одним процессом).
-5-
Учебное пособие по web-программированию (2013)
Преимущества и недостатки сервлетов:
Преимущества |
Недостатки |
|
|
Повышенная эффективноть — |
Низкоуровневая HTML-документация |
инициализируется один раз |
|
|
|
Простота использования — Java + HTML |
Сложности с управлением сессиями |
|
|
Мощность Java |
|
|
|
Переносимость за счет реализации на Java |
|
|
|
Дешёвый и безопасный |
|
|
|
Для работы сервлеты помещаются в web-контейнер (рисунок 1.6.)
Рисунок 1.6.
Дополнительную информацию можно узнать по адресу: http://www.tutorialspoint.com/servlets/servlets-overview.htm
Web-контейнеры помещаются в web-сервере. Состав папок контейнера может быть разным, но в общем случае в нём можно встретить classes, lib, tags и т. д. (рисунок 1.7.).
-6-
Учебное пособие по web-программированию (2013)
Рисунок 1.7.
Web-контейнеры развёртываются с использованием дескриптора развёртывания web.xml. Простейший формат web.xml приведён на рисунке 1.8. В данном примере заданы всего два параметра контейнера — таймаут сессии пользователя (30 минут) и файл index.jsp, который будет открываться, если пользователь явно не укажет, какую страницу в контейнере необходимо открыть.
Рисунок 1.8.
Компиляция web-проектов в общем случае осуществляется в war-архив. Существуют и используются на практике и другие форматы, например, ear, но в рамках данного курса мы остановимся на war-архивах, собираемых с использованием среды java-разработки NetBeans, которую можно скачать по адресу https://netbeans.org.
Если тестовый проект поместить в папку NetBeansProjects и назвать его WebApplication1, то стандартный war-файл будет создан в папке
.../NetBeansProjects/WebApplication1/dist/WebApplication1.war
Для развёртывания полученного war-файла его необходимо скопировать в папку webapps сервера Apache Tomcat (может быть установлен вместе с NetBeans или скачен отдельно по адресу http://tomcat.apache.org). Результат развёртывания приведён на рисунке 1.9.
-7-