Из Википедии, свободной энциклопедии
  (Перенаправлено со страниц сервера Java )
Перейти к навигации Перейти к поиску

Jakarta Server Pages ( JSP ; ранее JavaServer Pages) - это набор технологий, которые помогают разработчикам программного обеспечения создавать динамически генерируемые веб-страницы на основе HTML , XML , SOAP или других типов документов. Выпущенный в 1999 году Sun Microsystems , [1] JSP похож на PHP и ASP , но использует язык программирования Java .

Для развертывания и запуска Jakarta Server Pages требуется совместимый веб-сервер с контейнером сервлетов , например Apache Tomcat или Jetty .

Обзор [ править ]

Архитектура JSP Model 2.

С точки зрения архитектуры JSP можно рассматривать как высокого уровня абстракции из Java - приложений . JSP транслируются в сервлеты во время выполнения, поэтому JSP является сервлетом; каждый сервлет JSP кэшируется и используется повторно до тех пор, пока исходный JSP не будет изменен. [2]

Серверные страницы Java могут использоваться независимо или как компонент представления серверной модели – представления – контроллера , обычно с JavaBeans в качестве модели и сервлетами Java (или такой структурой, как Apache Struts ) в качестве контроллера. Это тип архитектуры Model 2 . [3]

JSP позволяет чередовать код Java и определенные предопределенные действия со статическим содержимым веб-разметки, например HTML. Полученная страница компилируется и выполняется на сервере для доставки документа. Скомпилированные страницы, как и любые зависимые библиотеки Java, содержат байт-код Java, а не машинный код . Как и любая другая программа .jar или Java, код должен выполняться на виртуальной машине Java (JVM), которая взаимодействует с операционной системой хоста сервера, чтобы обеспечить абстрактную, платформенно-нейтральную среду.

JSP обычно используются для доставки документов HTML и XML, но с помощью OutputStream они также могут доставлять другие типы данных. [4]

Web контейнер создает JSP скрытые объекты , такие как запрос, ответ, сессия, приложение, конфигурация, страница, PageContext, вне и исключение. JSP Engine создает эти объекты на этапе перевода.

Синтаксис [ править ]

Страницы JSP используют несколько разделителей для скриптовых функций. Самый простой - <% ... %>это скриптлет JSP . Сценарий - это фрагмент кода Java, который запускается, когда пользователь запрашивает страницу. Другие общие разделители включают <%= ... %>в выражения, где скриптлет и разделители заменяются с результатом вычисления выражения и директивы , обозначаемые с <%@ ... %>. [5]

Код Java не обязательно должен быть полным или автономным в пределах одного блока скриптлета. Он может объединять разметку содержимого при условии, что страница в целом синтаксически правильна. Например, любые блоки Java if / for / while, открытые в одном скриптлете, должны быть правильно закрыты в более позднем скриптлете для успешной компиляции страницы. Это позволяет смешивать код и может привести к плохим методам программирования.

Контент, который попадает в разделенный блок кода Java (охватывающий несколько скриптлетов), подчиняется этому коду. Содержимое внутри блока if будет отображаться в выходных данных только тогда, когда условие if оценивается как истинное. Точно так же содержимое внутри конструкции цикла может появляться в выходных данных несколько раз, в зависимости от того, сколько раз выполняется тело цикла.

Следующее будет допустимым циклом for на странице JSP:

<p> Считаем до трех: </p> <%  for  ( int  i = 1 ;  i < 4 ;  i ++ )  {  %>  <p> Это число <% =  i  %> . </p> <%  }  %> <p> ОК. </p>

Вывод, отображаемый в веб-браузере пользователя, будет следующим:

Считая до трех:Это число 1.Это число 2.Это число 3.В ПОРЯДКЕ.

Язык выражения [ править ]

Версия 2.0 спецификации JSP добавила поддержку языка выражений (EL), используемого для доступа к данным и функциям в объектах Java. В JSP 2.1 он был объединен в Unified Expression Language , который также используется в JavaServer Faces . [6]

Пример синтаксиса EL :

Значение переменной в объекте javabean равно $ {javabean.variable}.

Дополнительные теги [ править ]

Синтаксис JSP добавляет дополнительные теги, называемые действиями JSP, для вызова встроенных функций. [5] Кроме того, технология позволяет создавать собственные библиотеки тегов JSP, которые действуют как расширения стандартного синтаксиса JSP. [7] Одной из таких библиотек является JSTL с поддержкой общих задач, таких как итерация и условные выражения (эквивалент операторов «for» и «if» в Java.) [8]

Компилятор [ править ]

JavaServer Pages компилятор это программа , которая разбирает JSPs, и превращает их в исполняемые Java - приложений . Программа этого типа обычно встраивается в сервер приложений и запускается автоматически при первом обращении к JSP, но страницы также могут быть предварительно скомпилированы для повышения производительности или скомпилированы как часть процесса сборки для проверки ошибок. [9]

Некоторые контейнеры JSP поддерживают настройку того, как часто контейнер проверяет временные метки файла JSP, чтобы узнать, изменилась ли страница. Обычно эта временная метка устанавливается на короткий интервал (возможно, секунды) во время разработки программного обеспечения и более длинный интервал (возможно, минуты или даже никогда) для развернутого веб-приложения . [10]

Критика [ править ]

В 2000 году Джейсон Хантер, автор книги «Программирование сервлетов Java», описал ряд «проблем» с JavaServer Pages. [11] Тем не менее, он писал, что, хотя JSP не может быть «лучшим решением для платформы Java», это было «решение Java, которое больше всего похоже на решение не-Java», под которым он имел в виду Active Server Pages Microsoft . Позже он добавил на свой сайт заметку о том, что JSP улучшился с 2000 года, но также упомянул его конкурентов, Apache Velocity и Tea (язык шаблонов). [ необходима цитата ] Сегодня существует несколько альтернатив, и ряд страниц, ориентированных на JSP, в более крупных веб-приложениях считается техническим долгом.

См. Также [ править ]

  • Интерактивные веб-истории
  • Sitelet

Контейнеры сервлетов [ править ]

  • Apache Tomcat
  • Apache TomEE
  • Jetty (веб-сервер)
  • Стеклянная рыба
  • Веб-сервер Oracle iPlanet
  • Сервер приложений WebSphere

Альтернативы шаблонов на основе Java [ править ]

  • Adobe ColdFusion
  • Люси
  • FreeMarker
  • JHTML
  • Тимелист

Ссылки [ править ]

  1. ^ Архив списка рассылки: «Sun JSP 1.0 * не * доступен»
  2. ^ Жизненный цикл страницы JSP (документация Sun)
  3. ^ Сешадри, Говинд (29 декабря 1999). «Понимание архитектуры JavaServer Pages Model 2» . JavaWorld . Проверено 17 июля 2020 .
  4. ^ Тема форума (JavaRanch): OutputStream уже получен
  5. ^ a b Справочник по синтаксису JSP 1.2
  6. ^ Единый язык выражений (Sun Developer Network)
  7. ^ Руководство по библиотекам тегов - Что такое библиотека тегов? (Вс) Архивировано 19 апреля 2012 года в Wayback Machine.
  8. ^ Документация JSTL (Oracle) bb
  9. ^ Документация по IBM WebSphere 6.0.2
  10. ^ Документация Sybase EAServer 5.0
  11. Проблемы с JSP (25 января 2000 г.)

Дальнейшее чтение [ править ]

  • Бергстен, Ханс (2003). JavaServer Pages (3-е изд.). O'Reilly Media . ISBN 978-0-596-00563-4.
  • Браун, Саймон; Далтон, Сэм; Джепп, Дэниел; Джонсон, Дэйв; Ли, пой; Raible, Мэтт. Pro JSP 2 . Апресс . ISBN 1-59059-513-0.
  • Ханна, Фил (2003). JSP 2.0 - Полный справочник . McGraw-Hill Osborne Media . ISBN 978-0-07-222437-5.
  • Сьерра, Кэти; Бейтс, Берт; Бэшем, Брайан. Начните с первых сервлетов и JSP . O'Reilly Media . ISBN 978-0-596-00540-5.

Внешние ссылки [ править ]

  • Официальный сайт
  • Справочник по синтаксису JSP v2.0
  • JavaServer Pages
  • JavaServer Pages (JSP) и JSTL
  • Карта синтаксиса JavaServer Pages v2.0 ( html )
  • Официальное руководство: Учебное пособие по Java EE 5, глава 5, Технология JavaServer Pages.
  • История сервлетов
  • настроить среду JSP JSP Latest
  • web-mode.el, основной режим emacs для редактирования шаблонов jsp