Перейти к содержимому

Jsp java что это

  • автор:

Java Server Pages

Java Server Pages представляет технологию, которая позволяет создавать динамические веб-страницы. Изначально JSP (вместе с сервлетами) на заре развития Java EE являлись доминирующим подходом к веб-разработке на языке Java. И хотя в настоящее время они уступило свое место другой технологии — JSF, тем не менее JSP продолжают широко использоваться.

По сути Java Server Page или JSP представляет собой html-код с вкраплениями кода Java. В то же время станицы jsp — это не стандартные html-страницы. Когда приходит запрос к определенной странице JSP, то сервер обрабатывает ее, генерирует из нее код html и отправляет его клиенту. В итоге пользователь после обращения к странице JSP видит в своем браузере обычную html-страницу.

Как и обычные статические веб-страницы, файлы JSP необходимо размещать на веб-сервере, к которому обычные пользователи могут обращаться по протоколу http, например, набирая в адресной строке браузера нужный адрес. Однако чтобы сервер мог обрабатывать файлы JSP, он должен использовать движок JSP ( JSP engine ), который также называют JSP-контейнером. Есть множество движков JSP, и все они реализуют одну и ту же спецификацию и в целом работают одинаково. Однако тем не менее при переносе кода с одного веб-сервера на другой могут потребоваться небольшие изменения.

JSP Engine

В данном случае для работы с JSP мы будем использовать Apache Tomcat, который одновременно является и веб-сервером и контейнером сервлетов и JSP.

Создадим простейшую страницу JSP. Для этого где-нибудь на жестком диске определим файл index.jsp . Все станицы JSP имеют расширение jsp . Откроем этот файл в любом текстовом редакторе и определим в нем следующий код:

     First JSP App   

Today

С помощью тегов мы можем определить код Java на странице JSP. В данном случае мы просто определяем переменную типа String, которая называется header.

Затем идет стандартный код страницы html. Чтобы внедрить код java внутрь html-страницы применяются теги — после знака равно указывается выражение Java, результат которого будет выводиться вместо этих тегов. В данном случае, используются две таких вставки. Первая вставка — значение переменной header, которая была определена выше. Вторая вставка — выражение new java.util.Date() , которое возвращает текущую дату.

Для тех, кто знаком с веб-разработкой на PHP, это может напоминать оформление файлов php, которые также содержать код html и код php.

Теперь поместим данный файл на сервер — в данном случае в контейнер Tomcat. Перейдем в Apache Tomcat к папке webapps\ROOT . Удалим из нее все содержимое и поместим нашу страницу index.jsp , которая была создана выше.

Java Server Pages

Запустим Apache Tomcat (если он не запущен), и обратимся к приложению по адресу http://localhost:xxxx/index.jsp , где xxxx — номер порта, по которому запущен Tomcat:

Введение в Java Server Page

В итоге Tomcat получит запрос к странице index.jsp, обработает код на java, сгенерирует html-страницу и отправит ее пользователю.

Что такое сервлеты и JSP

Узнайте всё о сервлетах и JSP в Java-разработке: что это, как они работают и как создавать динамические веб-страницы!

Алексей Кодов
Автор статьи
9 июня 2023 в 16:31

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

Сервлеты

Сервлеты – это Java-классы, которые расширяют возможности сервера, способный обрабатывать запросы от клиентов (обычно веб-браузеров) и генерировать динамический контент, такой как HTML. Основная задача сервлета – обработка запросов и ответов веб-клиентов. Сервлеты работают на Java-серверах, таких как Tomcat или Jetty.

Пример простого сервлета:

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet < protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException < PrintWriter out = response.getWriter(); out.println("<html><body><h1>Hello, World!</h1></body></html>"); >>

JSP (JavaServer Pages)

JSP – это технология, которая позволяет вставлять Java-код непосредственно в HTML-страницы. Это упрощает создание динамического контента и разделение логики приложения на фронтенд и бэкенд. JSP представляет собой текстовый файл с расширением .jsp , который содержит статический HTML-код, а также дополнительные JSP-теги и Java-код.

Пример простой JSP-страницы:

   Hello JSP   

Hello, JSP!

Current time:

Java-разработчик: новая работа через 11 месяцев
Получится, даже если у вас нет опыта в IT

Взаимодействие сервлетов и JSP

В реальных приложениях сервлеты и JSP часто используются вместе для создания динамических веб-страниц. Сервлеты обрабатывают запросы от клиента, выполняют бизнес-логику и передают результаты на JSP-страницу для отображения.

Пример использования сервлета и JSP вместе:

  1. Создаем сервлет:
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class UserServlet extends HttpServlet < protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException < String userName = request.getParameter("name"); request.setAttribute("userName", userName); RequestDispatcher dispatcher = request.getRequestDispatcher("user.jsp"); dispatcher.forward(request, response); >>
  1. Создаем JSP-страницу user.jsp :
   User Page  

Welcome, !

Теперь, когда вы знаете основы работы с сервлетами и JSP, вы можете начать создавать свои собственные динамические веб-приложения на Java. Рекомендуем продолжить изучение этой темы, так как она является важной составляющей успешного Java-разработчика. Удачи вам в обучении! ��

Что такое JSP? Разбираемся с возможностями на практике

Java-университет

Что такое JSP? Разбираемся с возможностями на практике - 1

JSP или Java Server Pages — это технология Java, которая позволяет создавать динамические веб-страницы для Java приложений. В этой статье мы подробнее поговорим о том, что такое JSP, обсудим некоторые возможности данной технологии, рассмотрим структуру JSP страниц, а также попробуем на практике взглянуть на то, что представляют собой эти Java Server Pages. Но для начала поговорим о преимуществах и важности JSP. JSP позволяет разработчику:

  • получать данные из веб-страницы в Java-код;
  • отправлять данные из Java кода на веб-страницу;
  • писать Java-код, прямо внутри html (однако злоупотреблять этим не стоит).

Необходимость знания JSP можно оценить довольно высоко по нескольким причинам:

  • JSP — одна из основных Java web-технологий;
  • JSP широко используется в большинстве компаний и проектов;
  • JSP бесшовно интегрируется с сервлетами Java внутри контейнера сервлетов.

JSP — определение

Приведу определение с Википедии: JSP (JavaServer Pages) — технология, позволяющая веб-разработчикам создавать содержимое, которое имеет как статические, так и динамические компоненты. Страница JSP содержит текст двух типов: статические исходные данные, которые могут быть оформлены в одном из текстовых форматов HTML, SVG, WML, или XML, и JSP-элементы, которые конструируют динамическое содержимое. Кроме этого могут использоваться библиотеки JSP-тегов, а также Expression Language (EL) для внедрения Java-кода в статичное содержимое JSP-страниц. Код JSP-страницы транслируется в Java-код сервлета с помощью компилятора JSP-страниц Jasper, и затем компилируется в байт-код виртуальной машины Java (JVM). Контейнеры сервлетов, способные исполнять JSP-страницы, написаны на платформенно-независимом языке Java. Технология JSP является платформенно-независимой, переносимой и легко расширяемой технологией для разработки веб-приложений.

Структура JSP страницы

Что такое JSP? Разбираемся с возможностями на практике - 2

В общем случае под JSP понимаются динамические веб-страницы, в которых динамическая часть генерируется с помощью Java, а статическая формируется за счет языков разметки, чаще всего HTML. Такая страница представляет собой текстовый документ с расширением .jsp, написанный на одном из языков разметки (таких как HTML, SVG, WML и XML), c вкраплениями JSP элементов (или jsp тегов). Внутри данных тегов содержатся обращения к серверному коду (данным), а также выполняются некоторые вычисления. Данные файлы обрабатываются на сервере, в результате чего все JSP теги преобразуются в html теги, и на выходе получается обычная html страница. На схеме ниже представлена диаграмма структуры JSP страницы и ее взаимодействия с сервером. Пример простейшей JSP страницы:

    

$ равно 4

В данном примере внутрь html кода “внедрено” JSP выражение, написанное на специальном языке Expression Language (EL). Он предоставляет важный механизм взаимодействия слоя представления (веб-страниц) со слоем бизнес-логики приложения (Java-кода). Как видно из примера, JSP выражение заключено в фигурные скобки, с ведущим знаком доллара — $ <. >. Все, что находится внутри фигурных скобок, вычисляется на сервере, и результат этого выражения приводится в html, в то место, где изначально определено JSP выражение. После обработки всех тегов страница приобретет следующий вид:

    

4 равно 4

Установка и запуск контейнера сервлетов

Так как код JSP транслируется в код Java-сервлета, нам нужно где-то раздобыть какой-нибудь контейнер сервлетов, чтобы мы могли говорить о работе JSP. Иначе, без контейнера, JSP не заработает. Но для начала, приведем определение контейнера сервлетов. Контейнер сервлетов — программа, представляющая собой сервер, который занимается системной поддержкой сервлетов и обеспечивает их жизненный цикл в соответствии с правилами, определенными в спецификациях. Может работать как полноценный самостоятельный веб-сервер, быть поставщиком страниц для другого веб-сервера или интегрироваться в Java EE сервер приложений. Одним из самых популярных контейнеров сервлетов является Apache Tomcat. Что такое JSP? Разбираемся с возможностями на практике - 3Стоит оговориться, что Tomcat — это не полноценный Java EE сервер приложений. Однако для жизненных нужд сервлетов и JSP-страниц, сервера Tomcat более чем достаточно. Приступим к установке. Скачать Tomcat можно с официальной страницы. Для ОС Windows установить томкат можно следующим образом:

  1. Скачиваем 32-bit/64-bit Windows Service Installer.
  2. Запускаем файл.
  3. Далее следуем обычной процедуре установки:
    1. не забываем отметить галочку Examples на соответствующем окне инсталлятора: Что такое JSP? Разбираемся с возможностями на практике - 4
    2. и указать путь до предустановленной JRE: Что такое JSP? Разбираемся с возможностями на практике - 5
  4. После установки запускаем Tomcat и открываем браузер. Переходим на http://localhost:8080/.

Если вы видите стартовую страницу томката, значит, установка выполнена успешно и сервер запущен. Для запуска и остановки Tomcat в ручном режиме, можно запустить один из двух исполняемых файлов в директории bin. Она находится внутри директории, в которую инсталлирован Tomcat: Что такое JSP? Разбираемся с возможностями на практике - 6

Демонстрационные приложения. Скрытые объекты

Давайте посмотрим на некоторые возможности JSP в действии. Одна из них — доступ к так называемым скрытым объектам (Implicit Objects). Это объекты, к которым можно получить доступ, используя язык выражений EL (Expression Language). Примером таких объектов могут служить HTTP заголовки или же параметры URL. Раскроем (или же освежим в памяти) что такое параметры URL. В примере ниже представлен URL с параметрами. Параметры выделены жирным шрифтом: http://example.net/foo/bar ?param1=value1¶m2=value2&a=1&name=Tom Параметры всегда начинаются с символа вопроса (?). Далее следует имя параметра, после — через знак равенства — определяется значение параметра. Параметров может быть несколько либо один. Если их несколько, каждая пара имя-значение разделяется символом амперсанда (&). В примере выше были определены несколько параметров и их значения:

Имя параметра Значение параметра
param1 value1
param2 value2
a 1
name Tom

Взглянем на то, как можно получить доступ к скрытым объектам в JSP, в том числе и параметрам URL. Для этого запустим Tomcat и откроем браузер на странице http://localhost:8080/ Затем перейдем на страницу Examples: Что такое JSP? Разбираемся с возможностями на практике - 7После чего перейдем по ссылке JSP Examples: Что такое JSP? Разбираемся с возможностями на практике - 8На странице примеров перейдем по ссылке Implicit Objects -> Execute: Что такое JSP? Разбираемся с возможностями на практике - 9На этой странице можно увидеть пример использования скрытых объектов. Ниже — скрин страницы с подробными разъяснениями: Что такое JSP? Разбираемся с возможностями на практике - 10Попробуйте изменить значение параметра foo , используя для этого соответствующее поле на странице, после чего обратите внимание на то, что значение данного параметра изменилось также и в адресной строке. Представленная страница не обладает большим функционалом, однако она является хорошим справочником, к которому можно обращаться в дальнейшем, когда нужно будет получить доступ к тому или иному скрытому объекту. На данной странице приведен перечень скрытых объектов, к которым можно получить доступ. А ниже, в таблице, демонстрируется, как можно получить доступ к тому или иному объекту.

JSP функции

Что такое JSP? Разбираемся с возможностями на практике - 11

Теперь вернемся на предыдущую страницу, и взглянем на исходный код страницы “скрытые объекты”: Вот он:

  • pageContext — the PageContext object
  • pageScope — a Map that maps page-scoped attribute names to their values
  • requestScope — a Map that maps request-scoped attribute names to their values
  • sessionScope — a Map that maps session-scoped attribute names to their values
  • applicationScope — a Map that maps application-scoped attribute names to their values
  • param — a Map that maps parameter names to a single String parameter value
  • paramValues — a Map that maps parameter names to a String[] of all values for that parameter
  • header — a Map that maps header names to a single String header value
  • headerValues — a Map that maps header names to a String[] of all values for that header
  • initParam — a Map that maps context initialization parameter names to their String parameter value
  • cookie — a Map that maps cookie names to a single Cookie object.

Если вы знакомы с HTML, исходный код страницы должен быть вам вполне понятен. Обратите внимание на эти строки:

Значение выводится через использование JSP функции fn:escapeXml() . JSP функции инкапсулируют в себе некоторую функциональность, которую можно переиспользовать. В данном случае это экранирование XML. Технология JSP предоставляет широкий набор функций на выбор, а также возможность создавать свои собственные функции. Чтобы использовать в JSP функцию, необходимо импортировать в JSP файл соответствующую библиотеку, в которой определена данная функция.

Библиотеки тегов

Взглянем на еще одну строку исходного кода (вторая строка), представленного выше:

  • taglib (tag library — библиотеку тегов);
  • url , по которому располагается данная библиотека;
  • префикс (в данном случае fn ) через который можно будет вызывать функции определенные в данной библиотеке.

Как и в случае с fn , обозначение c опциональное и общепринятое. Такое обозначение можно встретить практически везде, где используются данные библиотеки. Приведем пример функции из библиотеки core:

Данная функция просто выведет тег

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

Редактирование JSP

Что такое JSP? Разбираемся с возможностями на практике - 12

Теперь, вооружившись новыми знаниями, попробуем внести изменения в демонстрационное приложение внутри Tomcat. Для этого найдем исходный код данной страницы внутри папки, в которую был установлен данный контейнер сервлетов. Данный файл можно найти по следующему адресу: . \Apache Software Foundation\Tomcat 9.0\webapps\examples\jsp\jsp2\el Затем откроем в любом текстовом редакторе файл implicit-objects.jsp Добавим импорт библиотеки core, а затем с её помощью осуществим вывод какого-нибудь текста: Теперь обновим страницу скрытых объектов и взглянем на внесенные изменения:

Итоги

  • что такое JSP;
  • структуру JSP страницы;
  • процедуру установки и запуска контейнера сервлетов Tomcat;
  • демонстрационное приложение по доступу к скрытым объектам, которое входит в поставку дистрибутива сервера Tomcat;
  • JSP функции и библиотеки тегов.

Что дальше?

  1. Повторить все описанное в данной статье.
  2. Рассмотреть другие демонстрационные приложения входящие в поставку сервера Tomcat.
  3. Написать самостоятельно приложение и задеплоить его в контейнер сервлетов. В качестве руководства можно воспользоваться статьей Создание простейшего веб-проекта в IntelliJ Idea Enterprise. Пошагово, с картинками.

Jsp java что это

20 октября 2023

Скопировано

Java Server Pages (JSP) — технология, позволяющая создавать веб-страницы и Java-приложения со статическим и динамическим содержимым. С ее помощью разработчик может встраивать код Java в обычную HTML-страницу, используя специальные JSP-теги. JavaServer Pages была разработана компанией Sun Microsystem в 1999 году как ответ на коммерчески успешную аналогичную технологию ASP, созданную компанией Microsoft. Сегодня JSP является одним из наиболее распространенных инструментов для создания динамических веб-страниц за счет своей кроссплатформенности, переносимости и легкой масштабируемости.

Освойте профессию «Java-разработчик»

Java-разработчик

Java уже 20 лет в мировом топе языков программирования. На нем создают сложные финансовые сервисы, стриминги и маркетплейсы. Освойте технологии, которые нужны для backend-разработки, за 14 месяцев.

картинка (93)

Профессия / 14 месяцев
Java-разработчик

Освойте востребованный язык

Group 1321314345 (5)

Что такое JSP

Типичная веб-страница представляет собой статичный HTML-документ, который в полностью готовом виде хранится на сервере. При запросе пользователя сервер просто «отдает» их его браузеру, который и отображает конечный результат. Чтобы изменить статический контент веб-страницы, необходимо иметь к нему доступ на сервере. Данная технология имеет свои преимущества — в частности, такие страницы проще создавать (не нужно знать языки программирования), они менее требовательны к характеристикам сервера, быстрее загружаются и т.д. Вместе с тем статическое содержимое труднее редактировать, так как это приходится делать постранично, то есть менять его на каждой странице.

Динамические веб-страницы работают иначе — они генерируются в ответ на запрос пользователя из готовых шаблонов, скриптов, файлов и т.д. Чтобы такой документ отобразился в веб-браузере, сервер должен не просто отдать в ответ на запрос готовое содержимое, а как бы собрать его из нужных частей, которые прописаны в HTML-коде. Такой подход существенно расширяет функциональность веб-приложений и делает их более адаптивными. Но при этом требует больших затрат серверных ресурсов и установки на ПК пользователя промежуточного ПО.

Java Server Pages — технология, позволяющая объединить в одном веб-документе как статическое, так и динамическое содержимое. Первое представляет собой данные, размеченные в текстовых форматах HTML, SVG, WML, или XML. Динамическое содержимое конструируется JSP-элементами, а также с помощью JSP-тегов и скриптового языка Expression Language. Если проще, то эта технология позволяет разработчикам внедрять Java-код непосредственно в HTML-код, что работает существенно проще и быстрее, чем подгрузка динамических компонентов из отдельного файла.

Как работает JSP Java

Веб-страницы, созданные с применением технологии JSP, представляют собой HTML-текст с внедренными в него фрагментами кода Java. Когда пользователь отправляет серверу запрос к конкретной JSP-странице, тот ее обрабатывает, превращая в стандартный HTML-документ и присылает браузеру. В итоге пользователь видит перед собой обычную HTML-страницу.

JSP-страницы, как и обычные статические, хранятся на веб-сервере, доступ пользователей к которому осуществляется по протоколу http (или защищенному https). Однако, для обработки таких документов на сервере должен быть установлен JSP-движок (JSP-контейнер). Это специальный программный модуль, который переводит JSP в Java, инициирует генерацию документа и т.д. Существует несколько таких JSP-движков, но все они работают примерно одинаково и реализуют одну и ту же спецификацию. Однако, при переносе документа между серверами могут понадобиться небольшие изменения в коде.

В обобщенном виде процесс обработки веб-сервером JSP-файла выглядит следующим образом.

  • Браузер пользователя посылает на веб-сервер HTTP-запрос, как в случае обычной HTML-страницы.
  • Сервер распознает, что запрос относится к JSP-странице, и отправляет его в JSP-движок (контейнер).
  • Контейнер, в свою очередь, загружает JSP-файл с диска сервера и превращает его в содержимое сервлета. Это простой процесс, в котором текстовая часть шаблона преобразуется в операторы println (), а JSP-компоненты становятся Java-кодом, который отвечает за динамическую реакцию страницы.
  • Далее JSP-движок компилирует сервлет в исполняемый класс и направляет пользовательский запрос уже в механизм сервлета, который загружает класс Servlet и исполняет его. В ходе этого сервлет выводит код страницы в формате HTML и перенаправляет его на веб-сервер.
  • Получив ответ от сервлета, сервер направляет HTTP-ответ браузеру пользователя как статический HTML-объект.
  • На конечном этапе браузер принимает ответ сервера и внутри него обрабатывает динамически генерируемую HTML-страницу аналогично обычному статическому веб-документу.

Жизненный цикл JSP-страницы включает несколько этапов.

  • Перевод (трансляция). На этом этапе жизненного цикла JSP-контейнер переводит JSP-код документа в код Java. Этот процесс происходит автоматически на стороне сервера, который проверяет достоверность страницы и создает для нее сервлет — программный модуль, отвечающий за обработку запроса пользователя.
  • Компиляция. Далее JSP-контейнер компилирует Java-код, то есть переводит его на бинарный машинный язык. Перед этим он проверяет необходимость выполнения процесса — она возникает, если страница до этого не компилировалась или была изменена с момента последней компиляции. Сама компиляция осуществляется в три этапа – сначала JSP-контейнер разбирает JSP-код страницы, затем превращает его в сервлет, а потом компилирует его.
  • Загрузка и инициализация. JSP-контейнер загружает предварительно сгенерированный сервлет и создает экземпляр соответствующего класса. Затем он инициализирует экземпляр объекта, вызывая метод jspinit () перед обслуживанием запросов. Инициализация выполняется в большинстве случаев только один раз.
  • Выполнение. После всех подготовительных этапов JSP-движок начинает обработку запросов. Это осуществляется через сервлет, который вызывает метод _jspService() с двумя параметрами — на поступающие (запрошенные) и отправляемые данные. Для каждого запроса этот метод вызывается только один раз.
  • Очистка. Этот этап — логическое завершение жизненного цикла JSP. Как только запрос обработан, JSP-контейнер удаляет JSP-код и готовится повторить цикл снова для следующего запроса.

Станьте Java-разработчиком
и создавайте сложные сервисы
на востребованном языке

Структура JSP-страницы

Чтобы JSP-страница нормально работала, у нее должна быть соответствующая структура, включающая как стандартный текст, написанный на одном из языков разметки (HTML, XML и т.д.), так и интегрированные Java-компоненты. Интеграция последних осуществляется с помощью следующих инструментов:

  • специальных JSP-тегов , которыми в общем HTML-коде обозначаются начало и конец кода, написанный на Java;
  • выражений скриптового языка Expression Language, которые позволяют веб-дизайнерам, не знающим сам язык Java, записывать его код непосредственно на странице и обеспечивать таким образом доступ к Java-компонентам.

Рассмотрим простой пример структуры JSP-страницы:

Пример простого веб-документа, написанного на JSP

В этом примере видна как стандартная часть документа, обозначенная HTML-тегами, так и JSP-фрагменты, выделенные тегами .

  • Фрагмент задает переменную типа String под названием header.
  • Фрагмент задает конкретное значение переменной, определенной выше.
  • Фрагмент

    Today просто показывает текущую дату.

Загрузим этот файл на сервер, поместив в JSP-контейнер Tomcat. Запустив его и обратившись к приложению через адресную строку браузера, получим следующий результат:

реализация JSP-кода из примера

Чтобы начать программировать веб-приложения с помощью JSP, необходимы:

  • cреда разработки. Это специальное программное обеспечение, в котором осуществляется создание, тестирование и отладка JSP-документов. Наиболее распространенные среды разработки для работы с Java-компонентами — NetBeans, Eclipse или Java Development Kit. Их необходимо предварительно скачать и установить на компьютер;
  • JSP-контейнер. Этот компонент представляет собой сервер, отвечающий за системную поддержку сервлетов и обеспечивающий их жизненный цикл на основе правил, утвержденных в спецификациях. JSP-контейнер способен выполнять функции полноценного веб-сервера, поставлять веб-страницы для другого сервера или встраиваться в сервер приложений Java EE. Одним из самых популярных контейнеров для JSP является Apache Tomcat.

Помимо этого, чтобы разрабатывать веб-страницы на JSP, нужно установить соответствующую библиотеку и сам Java на ПК.

Структура JSP

Технология JSP использует несколько ключевых компонента для написания кода динамических страниц.

  • Директивы (directive). Это сообщения для JSP-движка, определяющие, какие действия и в каком порядке он должен выполнить. Например, с их помощью можно задать характеристики страницы, подключить дополнительные ресурсы, использовать нестандартные библиотеки тегов.
  • Действия (actions). Этот компонент инкапсулирует функции в тегах, которые встраиваются в код в JSP-страницы. Действия часто исполняются с учетом данных, отправляемых на сервер в запросе от конкретного пользователя. С их помощью также можно создавать Java-объекты, которые используются в скриптлетах JSP.
  • Скриптлеты (scriptlets). Они применяются для вставки Java-кода в страницы JSP, взаимодействующего с объектами страницы в процессе обработки запроса.
  • Библиотеки тегов (tag library). Этот компонент позволяет расширить функционал страницы за счет создания и использование собственных тегов.
  • Объявления (declaration). Они задают переменные, методы, внутренние классы и другие характеристики, которые можно позже применить в коде Java в документе JSP.

Преимущества JSP

Широкому распространению JSP способствует ряд преимуществ технологии перед альтернативными методами создания динамических страниц.

В сравнении с ASP. Технология активных серверных страниц была предложена в 1997 году компанией Microsoft специально для собственных серверных ОС Windows. На других операционных системах ее использование либо затруднено, либо невозможно. JSP использует Java как язык разработки динамических элементов, что, с одной стороны, упрощает работу, с другой — обеспечивает кроссплатформенность и переносимость веб-приложений на серверы других производителей.

В сравнении с «чистыми» сервлетами. JSP тоже использует сервлеты в процессе генерации динамических страниц. Однако, для работы сервлетов в чистом виде, HTML-текст страницы должен быть преобразован с помощью операторов println, писать и редактировать которые менее удобно, чем документ, записанный с помощью стандартного языка разметки.

В сравнении с SSI (включением на стиороне сервера). SSI — это реализованный в веб-сервере Apache язык для динамической сборки веб-страниц из отдельных модулей с последующей выдачей пользователю в виде HTML-документа. На практике он не позволяет создавать действительно сложные веб-приложения с использованием онлайн-форм, подключением к базам данных, взаимодействием с другими страницами и т.д. JSP же за счет своей многофункциональности позволяет реализовать если не все, то большинство возможностей, ожидаемых от современных веб-приложений.

В сравнении с JavaScript. Скриптовый язык программирования JavaScript реализует динамические сценарии на стороне клиента (браузера). Как и в случае с SSI, это позволяет реализовать ограниченный набор возможностей. JSP работает на стороне сервера и задействует более широкий функционал, что позволяет использовать его при разработке крупных и сложных проектов.

Отдельно стоит сравнить JSP и другую распространенную в прошлом технологию создания динамических сайтов под названием Common Gateway Interface (Общий интерфейс шлюза). Она работает следующим образом:

  • веб-сервер, получая запрос от клиентского браузера, преобразует его в CGI-форму;
  • затем сервер вызывает обработчик и конвертирует его ответ из CGI-формы в форму HTTP-ответа клиенту.

Несмотря на то, что схема работы CGI выглядит проще, на практике у JSP есть немало преимуществ перед этой устаревшей технологией.

  • В CGI для динамических компонентов страниц необходимо создавать отдельные файлы. Такой способ замедляет генерацию содержимого страницы. В JSP динамические компоненты можно встраивать непосредственно в HTML-код, что существенно упрощает разработку и увеличивает скорость загрузки страницы.
  • JSP обязательно компилируется сервером перед обработкой, за исключением случаев, когда компиляция уже была осуществлена, а документ с тех пор не менялся. CGI же требует при запросе страницы всегда требует загрузки интерпретатора и целевого скрипта.
  • Страницы JavaServer надстраиваются над API сервлетов Java, поэтому JSP доступны все мощные API-интерфейсы Enterprise Java, в том числе JDBC, JNDI, EJB, JAXP и другие.
  • JSP-технологию можно комбинировать с «чистыми» сервлетами, обрабатывающими бизнес-логику, модель, которую поддерживают механизмы шаблонов сервлетов Java.

Недостатки JSP

К наиболее заметным недостаткам JSP-технологии относятся следующие.

  • Необходимость знать Java. Изначально технология JSP позиционировалась как средство, разграничивающее код и представление, то есть отделяющее работу дизайнера и программиста. На практике дизайнер зачастую должен владеть хотя бы азами программирования на Java, чтобы спроектировать нормально работающую JSP-страницу.
  • Использование одного языка. JSP работает только в связке с языком Java. С одной стороны, это ограничивает возможности разработчика, заставляя его переучиваться на этот язык. С другой, на практике Java является одним из наиболее популярных ЯП, поэтому это не вызывает больших проблем.

Заключение

Изначально JSP была создана как ответ на коммерчески успешную ASP, разработанную компанией Microsoft, с которой корпорация Sun Microsystems конкурировала в конце 90-х годов прошлого века. Однако, со временем эта технология претерпела ряд важных изменений и превратилась в самодостаточный инструмент, который сегодня используется при разработке множества веб-приложений.

JSP особенно удобно использовать в крупных проектах. Одна из основных проблем при разработке сложных веб-приложений заключается в необходимости анализировать большие массивы кода. Если в проекте модель, ответственная за работу непосредственно с данными, не отделена от представления (пользовательского интерфейса), это может создавать сложности для разработчиков и существенно замедлить разработку и поддержку продукта.

JSP-технология основана на четком разделении модели (бизнес-логики) и представления (пользовательского интерфейса). Это позволяет реализовывать большие и сложные веб-сайты и приложения путем разделения обязанностей между программистами и дизайнерами. Кроме того, технология упрощает поддержку таких проектов, так как с ее помощью можно редактировать бизнес-логику, не затрагивая пользовательскую часть, и наоборот. Вместе с тем JSP успешно показывает себя и в создании небольших веб-приложений за счет гибкого подхода к проектированию.

Статьи по теме:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *