Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JAVA_Ekz_voprosy.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
717.82 Кб
Скачать
  1. Спецификация jsp. Назначение. Основные возможности. Директивы, теги (определение, выполнение, скриплеты), предопределенные объекты.

Технология Java Server Pages (JSP) предназначена для создания специальной серверной компоненты web-приложения, называемой jsp-страницей и обладающей одновременно свойствам html-страницы и сервлета. В самом первом приближении jsp-страница – это html-странница с вкраплениями java-кода. Как и в случае с сервлетом для исполнения jsp-страницы требуется специальный контейнер (JSP Engine), который отвечает за разбор (parsing) страницы JSP и преобразование ее в сервлет, генерирующий при исполнении html-код.

Применение технологии JSP, не отрицает, а скорее дополняет технологию Java Servlet. Два основных архитектурных похода при реализации приложений по технологии JSP имеют специальные названия: JSP Model 1 (рис. 4.1) и JSP Model 2 (рис. 4.2).

В первом архитектурном решении jsp-страница полностью отвечает за получение запроса клиента, его обработку, подготовку и отправку ответа. Для доступа к данным, как правило, используется объект JavaBean, который создается и инициализируется jsp-страницей. Методы этого объекта предназначены для формирования запроса к источнику данных (например, к серверу базы данных), а свойства для хранения данных запроса и результатов ответа.

Во втором случае, запрос принимает и обрабатывает сервлет. Он же создает и инициализирует объект JavaBean, имеющий такое же предназначение, что и в первом случае. Страница JSP в этой модели, применяется только для формирования ответа, на основе данных хранящихся в свойствах JavaBean-объекта.

Преимущества второй модели становятся тем заметнее, чем сложнее разрабатываемое web-приложение.

Директивы JSP

Директивы предоставляют информацию контейнеру JSP, необходимую на стадии трансляции и имеют следующий синтаксис:

<% @ директива имя_атрибута_1 = “значение”

имя_атрибута_2 = “значение” … %>

Существует три типа директив: page, taglib и include.

<%@ page language=”java” contentType=”text/html; charset=ISO-8859-1” %>

Директива page определяет свойства страницы JSP. Значение атрибута language директивы page определяет язык (в примере – Java ) используемый в скриплетах (фрагментах программного когда), в выражениях или других включаемых файлах. Значение атрибута contentType устанавливает MIME-тип ответа и кодировку страницы.

Директива taglib, указывает на то, что в странице JSP будут использоваться библиотеки тегов. В связи с тем, что разработка и применение библиотеки тегов будет рассматриваться отдельно, отложим детальное описание этой директивы до соответствующего раздела главы.

Директива include позволяет вставлять текст и код в процессе трансляции jsp-страницы. На рис. 4.4 приведен пример jsp-страницы (пусть для определенности это страница с именем jsp-directives.jsp) с директивой include. Директива здесь используется для вставки одного файла с инструкциями JavaScript (далее js-файл) и двух html-файлов.

Объявления JSP

Тег JSP применяемый для объявлений имеет следующий синтаксис:

<% ! декларации переменных | декларация методов %>

Объявления не производят никакого вывода в выходной поток. Переменные и методы, декларированные в объявлениях становятся доступными для скриплетов и других объявлений в момент инициализации страницы JSP.

Выражения JSP

Тег JSP применяемый для выражений имеет следующий синтаксис:

<% = исполняемое выражение на языке скрипта %>

Выражение в jsp-странице – это исполняемое выражение, написанное на языке скрипта, указанного атрибутом language в директиве page (в нашем случае это язык Java). Результат выражения автоматически приводится к типу String и выводится в стандартный поток. Если выражение не может быть преобразовано к типу String, то возникает ошибка выполнения.

Скриплеты JSP

Скриплеты должны содержать фрагменты кода на языке скрипта, который указывается в атрибуте language директивы page (в нашем случае это язык Java).

Тег JSP применяемый для скриплетов имеет следующий синтаксис:

<% скрипт на языке Java %>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]