
- •Основные спецификации Java: se, ee, me. Состав ядра системы программирования Java.
- •Арифметические операторы (cpp, c#)
- •Целочисленные битовые операторы (cpp, c#)
- •Операторы отношения (cpp, c#)
- •Булевы логические операторы (cpp, с#)
- •Оболочки простых типов.
- •Сравнение строк.
- •Классы Java. Конструкторы, методы, наследование классов, управление доступом к методам и переменным класса, ключевые слова this и supper. Классы.
- •Переменные (instance variables).
- •Оператор new.
- •Объявление методов.
- •Конструкторы.
- •Пакеты классов, понятие иерархии пакетов, переменная окружения classpath, инструкции package и import. Jarархивы. Состав jar-архивов. Применение jar-архивов.
- •Интерфейсы Java: назначение, принцип применения.
- •Метод get
- •Метод post
- •Метод opinions
- •Метод put
- •Метод delete
- •Коды состояний
- •Informational (русск. Информационный)
- •Строка запроса выглядит так:
- •Стартовая строка ответа сервера имеет следующий формат:
- •Язык html. Основные теги. Структура html-страницы. Основные теги. Каскадные таблицы стилей.
- •Язык JavaScript. Стандарты языка JavaScript. Назначение языка. Основные возможности. Понятие dhtml.
- •Стандарт языка:
- •Возможности языка JavaScript:
- •Модель dom. Назначение модели dom. Уровни модели dom. Основные спецификации.
- •Сетевые службы. Примеры сетевых служб. Служба www (Web-сервер). Примеры реализации службы www.
- •Архитектура Web-приложений
- •Структура спецификации Java Platform Enterprise Edition. Web-технологии.
- •Технология Java Applets. Назначение. Основные возможности.
- •Спецификация Servlet. Назначение. Основные возможности.
- •Переопределение и переадресация запросов. Формирование get и post запросов в сервлете. Переопределение
- •Генерация запросов
- •Переадресация
- •Спецификация jsp. Назначение. Основные возможности. Директивы, теги (определение, выполнение, скриплеты), предопределенные объекты.
- •Директивы jsp.
- •Объявления jsp
- •Выражения jsp
- •Скриплеты jsp
- •Библиотека тегов. Назначение основные возможности. Структура jsp-страницы при применении библиотеки тегов.
- •Дескриптор библиотеки тегов
- •Применение библиотечных тегов
- •Основные модели web-приложений на основе технологий сервлетов и jsp.
- •Основные системные объекты (контекст, сессия, запрос, ответ). Назначение и жизненный цикл объектов. Контекст
- •Сеанс связи (сессия)
- •Дескриптор развертывания web-приложения. Параметры инициализации web-приложения: назначение, принципы применения.
- •Атрибуты системных объектов. Назначение. Принципы применения. Атрибуты контекста
- •Атрибуты запроса
- •Атрибуты сессии
- •Заголовки http-запросов и ответов. Назначение. Принципы применения. Заголовки запроса
- •Заголовки ответа
- •Фильтры (JavaFilter). Назначение. Принципы применения.
- •Слушатели (JavaEventListener). Назначение. Принципы применения.
- •Технология jdbc. СоставJdbc. Структура jdbcприложения. Типы jdbc-драйверов.
- •Технология jaas. Назначение. Основные возможности. Роли, пользователи и их взаимосвязь.
- •Структура web-клиентов серверов smtp и pop3.
- •HelomailrcptdatasendquiTи другие команды.
- •Структура web-приложения пересылающего файлы.
- •Пример 1. Описания параметра инициации в дескрипторе приложения
- •Пример 2. Получения значения параметра инициации
- •Пример 3. Класс, используемый для выбора списка файлов
- •Пример 4. Формирование списка файлов (ссылок) в jsp-странице
- •Пример 5. Функция пересылающая клиенту Word-файл
- •Методология Ajax. Структура Ajax-приложения, принципы разработки и применения.
- •Понятие Application Server. Наиболее известные реализации.
- •Примеры реализации
Атрибуты запроса
Для доступа к атрибутам запроса используются следующие методы интерфейса HttpServletRequest: getAttribute (получить значение атрибута), setAttribute (установить значение атрибута), getAttributeNames (получить список имен атрибутов), removeAtribute (удалить атрибут).
При вызове таким способом страницы JSP ей передается объект запроса, с помощью методов которого в скриплете jsp-страницы доступны ассоциированные с запросом атрибуты.
public class Hhh extends HttpServlet implements Servlet {
protected void doGet(HttpServletRequest rq, HttpServletResponse rs)
throws ServletException, IOException {
String is = "qwerty";
Integer ia = 12345;
jspclass.Regimex oa = new jspclass.Regimex();
rq.setAttribute("atr1", "qwerty");
rq.setAttribute("atr2", ia);
rq.setAttribute("atr3", oa);
rq.getRequestDispatcher("/jjj.jsp").forward(rq, rs);
}
}
На рис. приведен фрагмент jsp-страницы, в скриплете которой осуществляется доступ к атрибутам запроса с помощью методов неявного объекта request.
<!- ............................................ -->
<body>
<%
String vatr1 = (String) request.getAttribute("atr1");
Integer vatr2 = (Integer) request.getAttribute("atr2");
jspclass.Regimex vatr3 = (jspclass.Regimex) request
.getAttribute("atr3");
%>
<br> vatr1 =
<%=vatr1%>
<br> vatr2 =
<%=vatr2%>
<br> vatr2 =
<%=vatr3.GetHOUR()%>
</body>
<!- ............................................ -->
Атрибуты сессии
Создание, корректировка и удаление атрибутов осуществляется точно таким же способом, как и в предыдущих случаях. Единственным отличием является то, что методы, выполняющие эти операции являются собственностью интерфейса HttpSession. Объект сессии в jsp-странице становится доступным с помощью методаgetSession неявного объектаrequest.
Заголовки http-запросов и ответов. Назначение. Принципы применения. Заголовки запроса
Заголовки http-запроса представляют собой предшествующие телу запроса пары «имя-значение», которые формируются клиентом web-приложения (браузером) и пересылаются серверу. В общем случае одному заголовку может соответствовать несколько значений.
В простых сервлетах или jsp-странице разработчику доступны только три метода для работы с заголовками запроса: getHeader(получить первое значение заголовка по егоимени), setHeaders (получить все значения заголовка по имени), и getHeaderNames (получить все имена заголовков запроса).
Если же запрос формируется с помощью классов пакета httpclient (раздел 3.4), тотодaddRequestHeader объекта типаGetMethod(илиPostMethod) позволяет добавить собственные заголовки запроса, как это сделано в примере.
protected void doGet(HttpServletRequest rq, HttpServletResponse rs)
throws ServletException, IOException {
HttpClient hc = new HttpClient();
String uri = "http://localhost:8080/ANaive/Jjj";
GetMethod gm = new GetMethod(uri);
gm.addRequestHeader("MyHeader1", "MyHeadetValue1");
gm.addRequestHeader("MyHeader2", "MyHeadetValue2");
gm.addRequestHeader("MyHeader3", "MyHeadetValue3");
hc.executeMethod(gm);
rs.setContentType("text/html");
InOutServlet inout = new InOutServlet(rs.getOutputStream(),
gm.getResponseBodyAsStream());
inout.perform();
}
На представлен фрагмент сервлета, формирующего три дополнительных заголовка запроса с именами MyHeader1, MyHeader2, MyHeader3. В данном примере все значения заголовком имеют строковый формат.
Кроме строкового значения заголовков запроса могут быть целочисленного типа или типа Date. В этих случаях можно воспользоваться двумя другими разновидностями метода getHeader:getIntHeaderилиgetDateHeader.