- •Структура приложений в сети Интернет. Привести схему и пояснить назначение ее основных составных частей
- •Дать характеристику протоколу http. Его соотношение с другими протоколами (Ethernet, tcp/ip, ftp, Telnet и др)
- •Формат данных в протоколе http
- •Http запрос. Виды запросов. Основные части запросу. Строка статуса запроса. Привести примеры
- •Поля строки статуса http запроса. Количество полей, их взаимное расположение, разделители.
- •Охарактеризовать методы в строке статуса http запроса. Методы
- •Метод get и его особенности. Области применения. Привести примеры. Формат url. Параметры запроса, привести примеры.
- •Метод post и его особенности. Области применения. Привести примеры. Формат url. Параметры запроса, привести примеры.
- •Охарактеризовать основные параметры, описывающие характеристики тела http запроса. Привести примеры.
- •Охарактеризовать основные параметры, описывающие характеристики http запроса. Привести примеры
- •Протокол cgi и его характеристики. Область применения. Методы передачи данных от веб сервера в cgi программу и из cgi программы веб серверу.
- •Написать php программу, которая выводит все данные полученные от веб сервера.
- •Написать php программу, которая подсчитывает количеству посещений страницы.
- •Методы получения параметров из html форм в php программе. Рассмотреть методы передачи get и post.
- •Написать php программу, которая записывает в файл ip адрес и время каждого посещения.
- •Методывзлома php сайтов. Sql иньекции.Php иньекции.
- •Язык xml, его характеристика. Сравнительная характеристика xml и html. Дать краткую характеристику сопутствующих технологий.
- •Требования к синтаксису языка xml. Привести пример правильно отформатированных документов и документов нарушающих правила форматирования.
- •Дать характеристику действительным xml документам. Привести примеры.
- •Охарактеризовать технологию xsl. Назначение и основные возможности. Привести примеры.
- •Охарактеризовать технологию xsd. Назначение и основные возможности. Привести примеры.
- •Охарактеризовать основные методы анализа xml документов. Их сравнительная характеристика и области применения.
- •Объектная модель документа (dom). Основные характеристики и назначение. Привести примеры.
- •Дать сравнительную характеристику технологиям java, которые используются для разработки клиентской и серверной частей веб приложений.
- •Контейнеры сервлетов и их назначение. Требования к контейнерам.
- •Java сервлеты. Их назначение. Способы создания. Виды сервлетов. Способы доступа к параметрам и возврата данным веб серверу.
- •Жизненный цикл Java сервлета.
- •Охарактеризовать технологию jsp. Ее сравнение с технологиями php и asp.
- •Взаимоотношение технологий Java сервлетов и jsp.
- •Структура веб приложения с использованием Java сервлетов и jsp.
- •Шаблон mvc. Его назначение и основные характеристики.
- •Охарактеризовать технологию jsf. Ее назначение и взаимоотношение с технологий Java сервлетов и jsp.
- •Основные компоненты jsf технологии. Facalets, Manadged Beans, рендереры, валидаторы, конвертеры и их взаомодействие.
- •Жизненный цикл jsf компонент. Привести схему.
- •Охарактеризовать основные слои веб приложения на java. (jpa, Entity bean, jdbc, dao, SessionBean, Facade)
Контейнеры сервлетов и их назначение. Требования к контейнерам.
Контейнер сервлетов это ни что иное, как скопилированная программа. Основные функции контейнера это загрузка, инициализация и выполнение сервлетов.
Контейнер обрабатывает большое количество запросов, так как он может содержать много активных сервлеты, слушателей и т. д. Контейнер и объекты в контейнере являются многопоточными. Таким образом, каждый объект должен быть потокобезопасным, т.к. несколько запросов, принятых контейнер одновременно, могут использовать объект в нескольких потоках.
Примечание: контейнер сервлетов может работать самостоятельно т.е. без веб-сервера или даже на другом хосте.
Мы можем классифицировать контейнеры сервлетов, как:
1. простой контейнер сервлетов не полнофункционален и поэтому он может работать только с очень простыми сервлетами. Он выполняет следующие действия:
ожидание HTTP запроса.
создание объекта ServletRequest и объекта ServletResponse.
если запрашивается статический ресурс, выполнить метод process экземпляра класса StaticResourceProcessor, передав ему объекты ServletRequest и ServletResponse.
если запрашивается сервлет, загрузить класс сервлета и вызвать его метод service, передав ServletRequest и ServletResponse. Обратите внимание, что в этом контейнере сервлетов, класс сервлета загружается каждый раз, когда запрашивается сервлет.
2. Полнофункциональный контейнер сервлетов дополнительно выполняет следующие действия для каждого HTTP запроса:
когда сервлет вызывается в первый раз, загружает класс сервлета и вызвать его метод init (только один раз).
для каждого запроса создаёт экземпляр javax.servlet.ServletRequest и экземпляр javax.servlet.ServletResponse.
вызывает метода service сервлета, передавая ServletRequest и ServletResponse.
когда класс сервлета заканчивает работу, вызывает метод destroy сервлета и выгружает класс сервлета.
Теперь давайте посмотрим, что контейнер сервлетов делает при каждом HTTP запросе для сервлета, в целом:
контейнер сервлета загружает класс сервлета и вызывает его метод init, как только сервлет вызывается в первый раз.
затем контейнер создаёт экземпляр javax.servlet.ServletRequest и javax.servlet.ServletResponse для каждого запроса.
затем он передаёт объекты ServletRequest и ServletResponse методу service сервлета.
наконец, он вызывает метод destroy и выгружает класс сервлета.
Требования к контейнерам - ???
Java сервлеты. Их назначение. Способы создания. Виды сервлетов. Способы доступа к параметрам и возврата данным веб серверу.
Сервлет является Java-интерфейсом, реализация которого расширяет функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ.
Хотя сервлеты могут обслуживать любые запросы, они обычно используются для расширения веб-серверов. Для таких приложений технология Java Servlet определяет HTTP-специфичные сервлет классы.
Пакеты javax.servlet и javax.servlet.http обеспечивают интерфейсы и классы для создания сервлетов.
Сервлеты расширяют функциональность Web‑серверов и являются мощным средством программирования. Сервлеты – это модули, расширяющие возможности серверов типа запрос-ответ, таких как Java‑совместимые web‑сервера. Сервлеты для серверов то же самое, что и апплеты для браузеров, но в отличие от апплетов, у сервлетов нет графического интерфейса пользователя. Сервлеты могут быть встроены в различные серверы, так как API сервлетов, который используется для их написания, не предполагает никакого знания ни об окружении сервера, ни о его протоколе. Сервлеты наиболее широко используются с HTTP‑серверами; многие web‑сервера поддерживают API сервлетов. Они обеспечивают такой способ генерирования динамических документов, который позволяет облегчить их написание и ускорить выполнение. Сервлеты также решают проблему программирования на стороне сервера с платформо-зависимыми API, которые разрабатываются с использованием Java Servlet API, стандартного расширения Java. Характерной особенностью сервлетов является то, что они не требуют создания новых процессов при каждом новом запросе. Множество сервлетов выполняются параллельно в рамках одного процесса на сервере.
Сервлет с точки зрения Java - это класс, расширяющий абстрактный класс javax.servlet.GenericServlet, который в свою очередь реализует интерфейс javax.servlet.Servlet. Расмотрим основные методы, которые присутствуют в каждом сервлете и служат для организации его жизненого цикла.
Метод void init(ServletConfig config) вызывается один раз в момент загрузки
сервлета контейнером. Создавая Java класс для нового сервлета, разработчик может переопределить метод init() с тем, чтобы тот выполнил определенные подготовительные работы.
Метод service() вызывается при каждом обращении клиента к сервлету. Метод service() получает из web-контейнера запрос клиента в виде объекта ServletRequest и строит соответствующий ответ в объекте класса ServletResponse. Этот метод вызывает один из методов doXxx(), в зависимости от типа запроса:
doGet(HttpServletRequest req, HttpServletResponse resp) - предназначен для обработки GET-запросов;
doPost(HttpServletRequest req, HttpServletResponse resp) - предназначен для обработки POST-запросов.
Метод destroy() вызывается контейнером в момент уничтожения экземпляра сервлета. Разработчик может, переопределив этот метод, произвести некоторые операции, такие как освобождение выделенных ресурсов и т.п.
Виды сервлетов. -???
Способы доступа к параметрам и возврата данным веб серверу.
Класс ServletRequest включает методы, позволяющие читать имена и значения параметров запроса клиента.
String getParameter (String pname) – возвращает значение параметра с именем pname.
Enumeration getParameterNames() – возвращает перечисление имен параметров этого запроса.
String[] getParameterValues() – возвращает перечисление значений параметров этого запроса.
