Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену по ПИИ.docx
Скачиваний:
107
Добавлен:
26.03.2015
Размер:
207.29 Кб
Скачать
  1. Спецификация 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.

  1. Переопределение и переадресация запросов. Формирование 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.