- •Основные спецификации 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. Наиболее известные реализации.
- •Примеры реализации
Дескриптор развертывания web-приложения. Параметры инициализации web-приложения: назначение, принципы применения.
Дескриптор развертывания является важной частью web-приложения, предназначенный для хранения его основных параметров.
Дескриптор развертывания приложения представляет собой xml-файл, корневым элементом которого является тег <web-app>. Дескриптор приложения может содержать достаточно много различных и повторяющихся элементов. Порядок элементов внутри <web-app> и их синтаксис определяется схемой XML.
В самом простом случае дескриптор развертывания состоит только из одного тега
<web-app>, внутри которого ничего нет. В нашем случае, имеется еще три тега: <displayname>, <welcome-file-list> и <welcome-file>.
Тег <display-name> не является обязательным, но если есть, то не может повторяться более одного раза. Этот тег предназначен для указания имени webприложения, которое потом может быть использовано в графическом интерфейсе. Для этого имени не требуется уникальность и его значение не оказывает влияния на работу приложения.
Тег <welcome-file-list> тоже не является обязательным и предназначен для указания списка стартовых страниц web-приложения. Имена файлов странниц указываются внутри тега <welcome-file-list> с помощью одного или более тегов <welcome-file>.
Может быть указано несколько стартовых страниц для одного webприложения. В этом случае поиск их осуществляется в указанном порядке.
Дескриптор развертывания web-приложения содержит информацию необходимую web-контейнеру для взаимодействия с приложением.
Параметры инициализации сервлета и их значения описываются в теле соответствующего тега <servlet> дескриптора развертывания приложения. На примере фрагмента дескриптора развертывания приложения, описывающего сервлет Hhh с одним па-раметром инициализации.
<servlet>
<servlet-name>Hhh</servlet-name>
<servlet-class>Hhh</servlet-class>
<init-param>
<param-name>fhtml</param-name>
<param-value>male.html</param-value>
</init-param>
</servlet>
Единственный параметр инициализации в примере имеет имя fhtml и значение male.html. Значение параметров инициализации всегда имеют строкой тип. В общем случае параметров инициализации может быть больше, чем один.
Получить значение параметра инициализации в сервлете можно с помощью метода getInitParameter интерфейса Servlet. На примере фрагмент сервлета, считывающего значение параметра fhtml.
public class Hhh extends HttpServlet implements Servlet {
protected void doGet(HttpServletRequest rq, HttpServletResponse rs)
throws ServletException, IOException {
String fhml = getInitParameter("fhtml");
rq.getRequestDispatcher("/" + fhml).forward(rq, rs);
}
}
Атрибуты системных объектов. Назначение. Принципы применения. Атрибуты контекста
Атрибуты являются динамически элементами контекста и могут быть установлены, изменены или удалены в методах сервлетов или в скриплетах JSP. На рис. 5.7 приводится фрагмент сервлета, использующего атрибуты контекста.
public void init() throws ServletException {
super.init();
this.Ab = new ABean("qwerty");
ServletContext sc = getServletContext();
String a1 = "a1";
Integer n1 = 3;
sc.setAttribute("atr_a1", a1);
sc.setAttribute("atr_n1", n1);
sc.setAttribute("atr_Ab", Ab);
}
protected void service(HttpServletRequest rq, HttpServletResponse rs)
throws ServletException, IOException {
ServletContext sc = getServletContext();
PrintWriter pw = rs.getWriter();
Enumeration en = sc.getAttributeNames();
String x;
while (en.hasMoreElements()) {
x = (String) en.nextElement();
pw.println("<br />" + x + "= " + sc.getAttribute(x));
}
}
В методе init сервлета осуществляется установка значений атрибутов с помощью метода контекстаsetAttribute. Первый параметр этого метода задает имя атрибута, второй – его значение. Обратите внимание на атрибут с именемatr_Ab– его значением является ссылка на объект java-класса с именемABean.
В методе serviceсервлета с помощью методов контекстаgetAttributeNames иgetAttributeв окно браузера выводится имена всех атрибутов и их значения. Следует знать, что некоторые атрибуты могут создаваться и устанавливаться самими webконтейнером. Для того чтобы не изменить или не удалить их, необходимо в документации сервера выяснить имена этих атрибутов и не использовать их в своих приложениях. При необходимости удалить атрибут используют методremoveAttribute.