- •Основные спецификации 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. Наиболее известные реализации.
- •Примеры реализации
Заголовки ответа
Как и http-запрос http-ответ всегда можно дополнить собственными заголовками, которые потом могут быть получены и обработаны на стороне клиента.
protected void service(HttpServletRequest rq, HttpServletResponse rs)
throws ServletException, IOException {
rs.setContentType("text/html");
rs.addHeader("Jjj-Header1", "Jjj-HeaderValue1");
rs.addHeader("Jjj-Header2", "Jjj-HeaderValue2");
}
Фильтры (JavaFilter). Назначение. Принципы применения.
Фильтр– это класс Java, реализующий интерфейсFilter,и выполняющий роль препроцессора запроса. С помощью фильтра можно осуществить доступ к ресурсу непосредственно перед запросом, блокировать, предварительно обработать или модифицировать запрос, изменить ответ и т. п.
Фильтры могут быть использованы для различных ресурсов: сервлетов, jspстраниц, html-страниц и др. Один и тот же фильтр может быть назначен разным ресурсам. С другой стороны одному ресурсу может быть назначено несколько фильтров – в этом случае они образуют цепочкуфильтров.
Технология фильтров основывается на использовании трех основных интерфейсов: Filter,FilterChainиFilterConfig.
Интерфейс Filter является важнейшим интерфейсом и предназначен для фильтрации запросов и ответов.
Интерфейс FilterChain реализуется web-контейнером и используется для организации цепочки фильтров. С помощью этого интерфейса можно заблокировать доступ к ресурсу.
Интерфейс FilterConfig тоже реализуется web-контейнером и предназначен для информирования фильтра о его окружении.
Любой фильтр должен реализовать три обязательных метода: init,destroyиdoFilter. Все методы вызываются web-контейнером, а последовательность их вызова определяет жизненный цикл фильтра.
package flt;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Flt1 implements Filter {
public void init(FilterConfig cfg) throws ServletException {
System.out.println("Flt1:init");
}
public void destroy() {
System.out.println("Flt1:destroy");
}
public void doFilter(ServletRequest rq, ServletResponse rs, FilterChain ch)
throws IOException, ServletException {
}
}
<filter>
<filter-name>Flt1</filter-name>
<filter-class>flt.Flt1</filter-class>
</filter>
<filter-mapping>
<filter-name>Flt1</filter-name>
<url-pattern>/Sss</url-pattern>
</filter-mapping>
Слушатели (JavaEventListener). Назначение. Принципы применения.
Слушатель событий– это класс Java, реализующий один или более интерфейсов слушателей событий интерфейсов.
Перечень интерфейсов слушателей и их назначение приведен в табл. 5.1
Идентификатор интерфейса |
Обрабатываемые события |
ServletContextListener |
Создание и разрушение контекста |
ServletContextAttributeListener |
Добавление, удаление, модификация атрибута контекста |
HttpSessionListener |
Создание и уничтожение сеанса |
HttpSessionAttributeListener |
Добавление, удаление, модификация атрибута сессии |
Как и фильтры, слушатели создаются и инициализируются web-контейнером при загрузке web-сервера.
Слушатель может реализовывать интерфейс HttpSessionListenerи обрабатывать события двух типов: создание ( методsessionCreated ) и уничтожение сеанса (sessionDestroyed).
HttpSessionAttributeListener обрабатывает события добавления (attributeAdded), удаления (attributeRemoved), модификации(attributeReplaced) атрибута сессии. Слушатель может реализовывать интерфейсServletContextListenerи обрабатывать события двух типов: создание (методcontextCreated) и уничтожение контектса (contextDestroyed).
ServletContextAttributeListener обрабатывает события добавления (attributeAdded), удаления (attributeRemoved), модификации(attributeReplaced) атрибута сессии.
package lst;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class Lst1 implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent se) {
HttpSession ss = se.getSession();
System.out.println("Lst1:sessionCreated:Id="
+ ss.getMaxInactiveInterval());
ss.setMaxInactiveInterval(10);
System.out.println("Lst1:sessionCreated:Id=" + ss.getId());
}
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("Lst1:sessionDestroyed:Id="
}
}
<listener>
<listener-class>lst.Lst1</listener-class>
</listener>
<listener>
<listener-class>lst.Lst2</listener-class>
</listener>