- •Тема 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)
PKCS12 -validity 999 -keysize 512
Шаг 5. Затем необходимо поместить публичный ключ в доверенное хранилище (truststore) сервера. Для этого необходимо экспоровать его из полученного хранилища (myclientstore) в файл clientcert:
Необходимо ввести в консоли следующую комманду:
> keytool -export -alias client -keyalg RSA -keystore myclientstore -storetype PKCS12 -file clientcert
Шаг 6. Полученный файл необходимо импортировать в новое хранилище для сервера (это и будет truststore):
Необходимо ввести в консоли комманду
> keytool -import -alias client -keyalg RSA -keystore mytruststore -storetype JKS - file clientcert
Будет задан вопрос
Enter keystore password: mytruststorepassword
Необходимо ввести пароль, указанный ранее.
Шаг 7. Все сгенерированные файлы необходимо положить в корень Apache Tomcat. Теперь можно воспользоваться HTTPS-доступом к страницам сервера и прописать соответствующий доступ в дескрипторе развёртывания web.xml (рисунок 6.6). И сравните с соответствующей строчкой в рисунке 6.1.
Рисунок 6.6.
Подробнее с данной темой можно ознакомиться по адресу: http://habrahabr.ru/post/134453/
Тема 7. Введение в JSP
Основы построения JSP-приложений, жизненный цикл JSP, элементы страниц и директивы JSP.
Пример стандартного взаимодействия с JSP страницей приведён на рисунке 7.1. Браузер обращается к JSP-странице, которая скрывает работу с JavaBeans, Tags, Custom Tags и т.п.
-35-
Учебное пособие по web-программированию (2013)
Рисунок 7.1.
Дополнительную информацию можно найти по адресу: http://www.tutorialspoint.com/jsp/jsp_architecture.htm
Преимущества JSP:
Отделение логики от отображения
◦с использованием JavaBeans
Использование повторно используемых компонентов
Упрощённая разработка web-страниц
Доступ к JavaBeans
Перед разработчиками встаёт вопрос: когда использовать JSP, а когда
сервлеты:
JSP позволяют отображать пользователю статические и динамические данные, в то время как сервлеты удобнее использовать, когда вся страница динамическая
Сервлеты удобно использовать при манипулировании данными, например, при обработке изображений
При обращении пользователя к JSP-странице движок JSP выполняет следующие действия:
Разбор JSP
Создание кода сервлета
Компиляция сервлета в класс
Создание экземпляра сервлета
Вцелом жизненный цикл JSP состоит из следующих шагов:
Трансляция
◦jspInit()
◦_jspService()
◦jspDestroy()
Компиляция
Исполнение
Дополнительную информацию можно найти по адресу: http://www.tutorialspoint.com/jsp/jsp_life_cycle.htm
-36-
Учебное пособие по web-программированию (2013)
Основные элементы, с помощью которых строится JSP-страница
1. JSP-выражения
Формат: <%= Java-выражение %>
Пример: <%=Math.PI%>
2. Скриплеты
Формат: <% Фрагмент java-кода %> Пример:
<%
int x = 1; while(x < 100)
x *= x + 1; out.println("x! = " + x); %>
3. Определения
Формат: <%! Java-определение !%> Пример:
<%! int x = 5, y = 0; !%>
<%! private String value = "serge"; !%>
4. Комментарии Формат:
<%-- Комментарии --%> <!-- Комментарии --> Пример:
<%-- JSP-комментарии, которые не копируются в сервлет или в поток вывода --
%>
<!-- HTML-комментарии, которые видны на клиентской стороне →
5. Директивы page
<%@ page import="java.io.*,java.util.*" %>
позволяет использовать классы из пакетов (рисунок 7.2)
Рисунок 7.2.
-37-
Учебное пособие по web-программированию (2013)
include
<%@ include file="login.jsp" %>
позволяет «включить» страницу в страницу (рисунок 7.3)
Рисунок 7.3.
taglib
<%@ taglib uri="http://mytags.ru/tags" prefix="public" %>
определяет библиотеку тегов
6. Действия Перенаправление — forward <jsp:forward page="local url">
<jsp:forward page="/servlet/login">
Включение — include <jsp:include page="local url"> <jsp:include page="/login.jsp">
Дополнительную информацию можно найти по адресу: http://www.tutorialspoint.com/jsp/jsp_syntax.htm
Тема 8. Встроенные объекты JSP
Встроенные объекты JSP, обеспечивающие ввод-вывод информации, обработку запросов, работы с сессией, параметрами приложения, контекстом, конфигурацией, исключительными ситуациями.
Встроенные объекты загружаются внутри web-контейнера. Имена встроенных объектов — зарезервированные слова в JSP.
Типы встроенных объектов:
Объекты ввода-вывода: request, response, out
-38-
Учебное пособие по web-программированию (2013)
Объекты взаимодействия и управления
Объекты сервлета
Исключительные ситуации
◦exception
◦<%@ page isErrorPage="true"%>
Объект request (класс запроса тот же, что и в сервлете) поддерживает следующие методы:
String getParameter(String name)
-получение параметра по имени
Enumeration getParameterNames()
-получение имён всех параметров
void setAttribute(String name, Object value)
-установка значения атрибута
Object getAttribute(String name)
-получение значения атрибута
String getRemoteHost()
-получение имени удалённого компьютера
String getRemoteAddr()
-получение адреса удалённого компьютера
Объект response (класс запроса тот же, что и в сервлете) поддерживает следующие методы:
void addCookie(Cookie cookie)
-добавление Cookie
void sendRedirect(String url)
-перенаправление на URL
String encodeURL(String url)
-перекодировка URL
void encodeRedirectURL(String url)
-перекодировка и перенаправление на URL
Объект out поддерживает следующие методы:
void flush()
-закончить вывод информации в поток вывода (на страницу)
void clear()
-очистить
void close()
-закрыть поток вывода
void print(String text)
-вывести текст без перевода каретки
void println(String text)
-вывести текст с переводом каретки (обращаю Ваше внимание, что в HTML для отображения текста на новой строке необходимо использовать тег <br>, а обычный перевод каретки влияет только на читаемость HTML-кода)
В данном случае использование print или println — это забота о программисте, который будет искать ошибки в полученной на клиенте HTML-странице.
-39-
Учебное пособие по web-программированию (2013)
Объект session (класс запроса тот же, что и в сервлете) поддерживает следующие методы:
boolean isNew()
-проверка, что сессия является новой
void setAttribute(String name, Object value)
-установка значения атрибута в сессии
Object getAttribute(String name)
-получение значения атрибута из сессии
Enumeration getAttributeNames()
-получение всех имён атрибутов
void invalidate()
-деактивация сессии (используется для защиты данных, вводимых пользователем: когда пользователь прекращает работать с сессией её разумно деактивировать)
void removeAttribute(String name)
-удаление атрибута
Объект application (класс запроса тот же, что и в сервлете) поддерживает следующие методы:
Object getAttribute(String name)
-получение значения атрибута из приложения
void setAttribute(String name, Object value)
-установка значения атрибута в приложение
Enumeration getAttributeNames()
-получение имён всех атрибутов
void removeAttribute(String name)
-удаление атрибута
String getServerInfo()
-получение информации о сервере
void log(String message)
-вывод информации в журнал сервера
Объект pageContext (класс javax.servlet.jsp.PageContext) содержит следующие константы и методы:
Константы (не требуют комментариев)
◦PAGE_SCOPE
◦REQUEST_SCOPE
◦SESSION_SCOPE
◦APPLICATION_SCOPE
Методы
◦void setAttribute(String name, Object value, int scope)
-установка значения атрибута в заданной области видимости
◦Object getAttribute(String name, int scope)
-получение значения атрибута в заданной области видимости
◦Enumeration getAttributeNamesInScope(int scope)
-получение всех имён атрибутов в заданной области видимости
Объект config (класс javax.servlet.ServletConfig) поддерживает следующие методы:
-40-