Jump to content

Страницы сервера Джакарты

(Перенаправлено со страниц Java-сервера )
ДСП
Расширение имени файла
.jsp, .jspx, .jspf
Тип интернет-СМИ
приложение/jsp [ нужна ссылка ]
Разработано Фонд Затмения
Первоначальный выпуск 1999 год ; 25 лет назад ( 1999 )
Последний выпуск
4.0
9 апреля 2024 г .; 3 месяца назад ( 09.04.2024 )
Тип формата Динамическая веб-страница
Стандартный ДжСР 245
Открытый формат ? Да
Веб-сайт проекты .затмение .org /проекты /ee4j .jsp Отредактируйте это в Викиданных

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

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

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

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

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

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

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

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

Синтаксис

[ редактировать ]

Директивы, скриптлеты и выражения, объявление

[ редактировать ]

JSP используют несколько разделителей для функций сценариев . Самым основным является <% ... %>, который содержит скриптлет JSP . Скриптлет — это фрагмент Java-кода. [6] который запускается, когда пользователь запрашивает страницу.

Другие распространенные разделители включают в себя <%= ... %> для выражений, где скриптлет и разделители заменяются результатом вычисления выражения, и директивы , обозначаемые значком <%@ ... %>. [6] [7]

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

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

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

<p>Counting to three:</p><% for (int i=1; i<4; i++) { %>    <p>This number is <%= i %>.</p><% } %><p>OK.</p>

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

Counting to three:This number is 1.This number is 2.This number is 3.OK.

Стандартные теги JSP

[ редактировать ]

JSP useBean Тег позволяет разработчику получить доступ к Javabean и создать его. [8] Хотя использование useBean Тег похож на тег HTML, все теги JSP для JavaBeans используют синтаксис XML. Поэтому код, содержащий useBean тег чувствителен к регистру. [9]

The useBean тег содержит несколько атрибутов. id Атрибут объявляет имя, которое используется для получения доступа к компоненту. class Атрибут объявляет пакет и класс компонента. scope объявляет объект, ответственный за хранение компонента. Значение области определяет продолжительность, в течение которой компонент доступен для использования остальной частью приложения Java. Областью действия может быть одно из следующих четырех значений: [9]

  • The page область видимости подразумевает, что компонент расположен в неявно определенной области. PageContext объект и доступен только для текущей страницы. По умолчанию все bean-компоненты имеют область действия page.
  • The request область видимости подразумевает, что компонент можно найти в HttpServletRequest объект. Доступ к этому bean-компоненту могут получить все другие JSP и сервлеты, имеющие доступ к текущему объекту запроса.
  • The session область видимости подразумевает, что компонент можно найти в HttpSession объект. Доступ к этому bean-компоненту могут получить все другие JSP и сервлеты, имеющие доступ к указанному HttpSession объект.
  • The application область видимости подразумевает, что компонент можно найти в ServletContext объект. Доступ к этому bean-компоненту могут получить все другие JSP и сервлеты, имеющие доступ к указанному ServletContext объект.

Теги getProperty и setProperty

[ редактировать ]

После создания компонента с помощью useBean тег, getProperty и setProperty Теги можно использовать для получения и установки свойств компонента.JSP getProperty используется для получения свойств созданного компонента.JSP setProperty Тег используется для установки свойств компонента.Для getProperty и setProperty теги, атрибут name используется для указания имени компонента. Таким образом, атрибут name должен соответствовать атрибуту id, предоставленному useBean ярлык. [10]

Язык выражений

[ редактировать ]

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

Язык выражений JSP использует компактный синтаксис, который позволяет разработчику получать атрибуты и свойства JavaBean из заданного объекта запроса. При использовании EL в начале кода необходимо добавить знак доллара («$»). За символом доллара следует открывающая скобка («{»), а также закрывающая скобка («}»). Затем код записывается между открывающими и закрывающими скобками. [12]

Ниже приведен пример синтаксиса EL :

Стоимость variable в объекте javabean является ${javabean.variable}.

Дополнительные теги

[ редактировать ]

Синтаксис JSP добавляет дополнительные теги, называемые действиями JSP, для вызова встроенных функций. [7] Кроме того, эта технология позволяет создавать собственные библиотеки тегов JSP , которые действуют как расширения стандартного синтаксиса JSP. [13] Одной из таких библиотек является JSTL . [14]

Стандартная библиотека тегов Джакарты

[ редактировать ]

Стандартная библиотека тегов Джакарты (JSTL) поддерживает общие задачи, которые необходимо выполнять в JSP. [15] Примеры включают итерацию и условные выражения (эквивалент операторов «for» и «if» в Java). [14]

Из всех библиотек JSTL наиболее часто используется базовая библиотека JSTL. Директива taglib должна использоваться для указания URI базовой библиотеки JSTL с использованием префикса. Хотя существует множество различных вариантов префикса, для этой библиотеки обычно используется префикс «c». [16]

XML-совместимый JSP

[ редактировать ]

Страницы JSP также могут быть написаны с использованием полностью допустимого синтаксиса XML. [17] Такие файлы JSP обычно используют альтернативу .jspx расширение файла, которое обычно заставляет сервер приложений проверять синтаксис XML.

Поскольку обычный синтаксис JSP <% ... %> недействителен в XML, разработчик должен использовать альтернативные теги, предоставляемые JSP. Например, общий <%@ page .. %> вместо этого директива может быть записана как <jsp:directive.page .. /> теги, а библиотеки тегов импортируются с использованием пространств имен XML вместо обычных <%@ taglib .. %> ярлык.

Компилятор

[ редактировать ]

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

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

По мнению Джоэла Мураха и Майкла Урбана, авторов книги «Java-сервлеты Мураха и JSP», встраивание Java-кода в JSP обычно является плохой практикой. [20] Лучшим подходом было бы перенести внутреннюю логику, встроенную в JSP, в код Java в Servlet. [20] В этом сценарии Servlet отвечает за обработку, а JSP отвечает за отображение HTML, [20] поддержание четкого разделения интересов .

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

См. также

[ редактировать ]

Контейнеры сервлетов

[ редактировать ]

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

[ редактировать ]
  1. ^ Мэтью Тайсон (9 сентября 2022 г.). «Что такое JSP? Введение в серверные страницы Джакарты» . Инфомир . Проверено 30 мая 2024 г.
  2. ^ «Архив ForRK: Sun JSP 1.0 *не* доступен» . www.xent.com .
  3. ^ Жизненный цикл страницы JSP (документация Sun)
  4. ^ Сешадри, Говинд (29 декабря 1999 г.). «Понимание архитектуры JavaServer Pages Model 2» . JavaWorld . Проверено 17 июля 2020 г.
  5. ^ «Выходной поток уже получен (форум JSP на Coderanch)» . coderanch.com .
  6. ^ Перейти обратно: а б Murach & Urban 2014 , стр. 180–182, §2 Основные навыки работы с сервлетами и JSP. Как использовать теги JSP.
  7. ^ Перейти обратно: а б Справочник по синтаксису JSP 1.2
  8. ^ Murach & Urban 2014 , стр. 198, §2 Основные навыки работы с сервлетами и JSP — Резюме.
  9. ^ Перейти обратно: а б Murach & Urban 2014 , стр. 186–187, §2 Основные навыки работы с сервлетами и JSP. Как кодировать тег useBean.
  10. ^ Murach & Urban 2014 , стр. 188, §2 Основные навыки работы с сервлетами и JSP — Как кодировать теги getProperty и setProperty.
  11. ^ Унифицированный язык выражений (Sun Developer Network)
  12. ^ Murach & Urban 2014 , стр. 176–177, §2 Основные навыки работы с сервлетами и JSP — Как использовать EL для получения атрибутов и свойств JavaBean.
  13. ^ Учебное пособие по библиотекам тегов. Что такое библиотека тегов? (Вс) Архивировано 19 апреля 2012 г. в Wayback Machine.
  14. ^ Перейти обратно: а б «Стандартная библиотека тегов JavaServer Pages — Учебное пособие по Java EE 5» . docs.oracle.com .
  15. ^ Murach & Urban 2014 , стр. 270–273, §2 Основные навыки работы с сервлетами и JSP - Введение в JSTL.
  16. ^ Murach & Urban 2014 , стр. 178, §2 Основные навыки работы с сервлетами и JSP — Как включить базовую библиотеку JSTL.
  17. ^ «Учебное пособие по Java EE 5, глава 6. Документы страниц JavaServer» . oracle.com . Проверено 27 июля 2022 г.
  18. ^ «Документация IBM» . www.ibm.com .
  19. ^ «Сибукс онлайн» . infocenter.sybase.com .
  20. ^ Перейти обратно: а б с Murach & Urban 2014 , стр. 46–47, §1. Начните правильно — JSP для второй страницы.
  21. ^ Перейти обратно: а б Проблемы с JSP (25 января 2000 г.)

Цитируемые работы

[ редактировать ]

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: be430b84652a639b5fb22bc986761452__1721391240
URL1:https://arc.ask3.ru/arc/aa/be/52/be430b84652a639b5fb22bc986761452.html
Заголовок, (Title) документа по адресу, URL1:
Jakarta Server Pages - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)