- •Основные спецификации 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. Наиболее известные реализации.
- •Примеры реализации
Спецификация Servlet. Назначение. Основные возможности.
Сервлет– это web-компонент, расположенный в серверной части web-приложения. Сервлеты выполняются в специальной среде – контейнере сервлетов, который является составной частью web-контейнера.
Среда, в которой может работать web-контейнер определяется его спецификацией – обычно это web-сервер или сервер приложений.
Сервлет не зависит от программно-аппаратной платформы на которой работает webконтейнер. Более того, сервлет переносим на уровне бинарных файлов между разными web-контейнерами, если эти контейнеры реализуют одну и туже версию спецификации контейнера сервлетов.
Основное назначение сервлетов – динамическое формирование содержимого ответов на запросы клиентского приложения. В общем случае сервлеты не зависят от протокола связи, но наиболее часто они применяются для обработки http-запросов.
С точки зрения программиста сервлет это класс Java, реализующий интерфейс Servlet. Для обработки http-запросов используют классHttpServlet, реализующий методы интерфейсаServlet и предоставляющий свои методы, предназначенные для обработки http-запросов и формирование http-ответов.
Объекты классов, используемые сервлетом для приема запросов и формирования ответов создаются контейнером, поэтому классы этих объектов (HttpServlet,HttpServletRequest,HttpServletResponse и др.) находятся в составе API webконтейнеров.
Чаще всего сервлеты используют для обработки http-запросов типа GETиPOST. Сервлет может принимать эти запросы, обрабатывать параметры, выполнять необходимые вычисления и формировать ответ. Кроме того, сам сервлет может тоже формировать http-запросы, а также получать и обрабатывать http-ответы.
Сервлет является простым и удобным типом компоненты web-приложения, позволяющим гибко организовать взаимодействие его серверной и клиенткой частей. Использование сервлета никак не связано с его местом расположения в сети – для обращения к нему необходимо знать только его URL и перечень принимаемых параметров. Обработку его ответа, можно осуществлять любым программным средством, поддерживающим протокол HTTP.
Переопределение и переадресация запросов. Формирование get и post запросов в сервлете. Переопределение
Forward-переопределение, может выполнится, если другой сервлет находится в рамках этого приложения. Связь с первым сервлетом теряется, ответы поступают напрямую браузеру.
Браузер вызывает сервлет Ppp, который в зависимости от значения передаваемого параметра в первом случае переопределяет запрос на сервлеты MmmилиFff, при переопределении запроса(RequestDispatcher rd = rq.getRrequestDispatcher("url"); rd.forward(rq,rs);), а во втором – генерирует http-запрос, вызывающийMmmилиFff.
Обратите внимание, что при переопределении запроса (a), связь браузера с сервлетом Pppфактически прекращается и данные ответа сервлетовMmmилиFffпоступают на обработку ему напрямую.
Генерация запросов
В случае генерации запроса (б), ответы сервлетов MmmиFff поступают и обрабатываются в вызывающем сервлетеPpp и только сгенерированныйPpp ответ может быть интерпретирован браузером. Внутри сервлета генерируется HTTP-запрос, и теперь этот сервлет будет выступать как клиент для другого сервлета. Ответы поступают назад к первому сервлету и он выдает ответ браузеру. Для генерации http-запросов будем использовать пакетhttpclient.