Опубликован: 18.09.2006 | Уровень: специалист | Доступ: платный | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 14:

Разработка различных уровней web приложений в J2EE и .NET

Серверные страницы Java

Серверные страницы Java [7,8] представляют собой компоненты, разрабатываемые на смеси из HTML и Java и предназначенные для динамического создания HTML-документов, содержащих результаты обработки запросов пользователя. Таким образом, JSP обычно играют роль представления в образце "данные–представление–обработчик", принятом за основу архитектуры приложений J2EE. Результатом работы JSP является HTML-страничка, а вставки Java кода служат для построения некоторых ее элементов на основе результатов работы приложения.

При работе Web-приложения JSP компилируются в сервлеты специального вида. При этом основное содержание страницы JSP превращается в метод doGet(), в котором HTML-элементы записываются в поток содержимого ответа в неизменном виде, а элементы Java-кода преобразуются в код, записывающий некоторые данные в тот же поток на основании параметров запроса или данных приложения.

Для развертывания JSP -страниц необходимо их описание в дескрипторе развертывания приложения web.xml, которое устроено так же, как описание сервлетов. Сами JSP -страницы помещаются, вместе с HTML-файлами и другими файлами, используемыми приложением, в корневую директорию этого приложения или ее поддиректории.

Основные интерфейсы и базовые классы JSP -страниц и их отдельных элементов находятся во входящих в J2EE SDK пакетах javax.servlet.jsp, javax.servlet.jsp.el, javax.servlet.jsp.tagext.

Элементами JSP -страниц могут быть обычные теги HTML, а также специальные элементы JSP — директивы, теги или действия (tags, actions) и скриптовые элементы.

JSP -директивы описывают свойства страницы в целом и служат для передачи информации механизму управления JSP -страницами.

Директивы имеют следующий общий синтаксис.

<%@ directive attribute1="value1" ... attributeN="valueN" %>.

Основные директивы JSP следующие:

  • Директива page предоставляет общую информацию о данной странице и статически включаемых в нее файлах. Такая директива на странице может быть только одна. Она может иметь следующие атрибуты.
    • import = "имена включаемых классов и пакетов через запятую"

      Порождает соответствующую Java-директиву import в сгенерированном коде сервлета.

    • contentType = "MIME-тип[;charset=таблица символов]"

      Задает тип MIME для генерируемого документа. По умолчанию используется text/html. Эквивалентен скриплету

      <% response.setContentType(MIME-тип); %> (см. далее).

    • isThreadSafe = "true|false"

      Значение true позволяет использовать один экземпляр сервлета, полученного из странички, для обработки множественных запросов. При этом необходимо синхронизовать доступ к данным этого сервлета.

    • session = "true|false"

      Значение true предписывает привязать сервлет к имеющейся HTTP-сессии, значение false говорит, что сессии использоваться не будут и обращение к переменной session приведет к ошибке.

    • autoFlush = "true|false"

      Определяет необходимость сбрасывать буфер вывода при заполнении.

    • buffer = "размер в KB|none"

      Задает размер буфера для выходного потока сервлета.

    • extends = "наследуемый класс"

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

    • errorPage = "url странички с информацией об ошибках"

      Определяет страницу, которая используется для обработки исключений, не обрабатываемых в рамках данной.

    • isErrorPage = "true|false"

      Допускает или запрещает использование данной страницы в качестве страницы обработки ошибок.

    • language = "java"

      Определяет язык программирования, применяемый в скриптовых элементах данной страницы. Пока есть возможность использовать только Java. Впоследствии предполагается (аналогично .NET) разрешить использование других языков, код которых будет также транслироваться в байт-код, интерпретируемый JVM.

  • Директива include обеспечивает статическое (в ходе трансляции JSP в сервлет ) включение в страничку внешнего документа. Она имеет атрибут file, значением которого должна быть строка, задающая URL включаемого файла.
  • Директива taglib указывает используемую в данной странице библиотеку пользовательских тегов. Она имеет два атрибута — uri, значением которого является URI библиотеки, и prefix, определяющий префикс тегов из данной библиотеки. Префикс употребляется в дальнейшем с тегами только данной библиотеки. Он не может быть пустым и не должен совпадать с одним из зарезервированных префиксов jsp, jspx, java, javax, servlet, sun, sunw.

Теги или действия определяют основные действия, выполняемые при обработке данных и построении результирующего документа.

Теги могут быть стандартными, использование которых возможно в любой странице без дополнительных объявлений, или пользовательскими, которые могут употребляться, только если предварительно с помощью директивы taglib была подключена содержащая их библиотека. Любой тег имеет следующий синтаксис.

<tagprefix:tag attribute1="value1" … attributeN="valueN" />

Теги могут содержать вложенные теги, такие как jsp:param, jsp:attribute. В этом случае они выглядят следующим образом.

<tagprefix:tag attribute1="value1" … attributeN="valueN">
  … (вложенные теги)
</tagprefix:tag>

Стандартные теги имеют префикс jsp, а префикс пользовательских тегов определяется в директиве taglib, подключающей содержащую их библиотеку.

Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Лариса Парфенова
Лариса Парфенова

1) Можно ли экстерном получить второе высшее образование "Программная инженерия" ?

2) Трудоустраиваете ли Вы выпускников?

3) Можно ли с Вашим дипломом поступить в аспирантуру?

 

Андрей Швецов
Андрей Швецов
Россия, Александровск, школа-гимназия №2 им. Островского, 2005
Анна Оганян
Анна Оганян
Россия, Москва, МГОУ