Использование JSTL в веб-приложении - PullRequest
1 голос
/ 26 июня 2011

Я разработчик интерфейса или интерфейса с ограниченным пониманием Java.У меня есть веб-приложение на основе Java с использованием JSTL .. Я хотел бы понять точное использование JSTL.Всегда ли он используется на страницах JSP и используется только для получения данных из базы данных.Не могли бы вы объяснить с некоторыми основными примерами ..

Ответы [ 4 ]

6 голосов
/ 26 июня 2011

Теги JSP используются для динамического генерирования HTML в JSP, но без смешивания кода Java и разметки HTML.JSTL - это библиотека стандартных тегов JSP.Это означает «Стандартная библиотека тегов JavaServer Pages», и, как указывает ее название, она используется в JSP.

Он никогда не должен использоваться для получения данных из базы данных.Получение данных из базы данных должно быть выполнено до выполнения JSP в контроллере, написанном на Java.Как только контроллер выполнил свою работу, он должен отправить HTTP-запрос представлению (JSP), роль которого заключается в визуализации данных.

Так что, если ваше приложение использует теги sql, это неправильно.Теги core и fmt в порядке.Как в руководстве по Java EE указано:

Теги JSTL SQL для доступа к базам данных, перечисленные в таблице 7-7, предназначены для быстрого создания прототипов и простых приложений.Для производственных приложений операции с базой данных обычно заключаются в компоненты JavaBeans.

3 голосов
/ 26 июня 2011

JSTL - Стандартная библиотека тегов страниц JavaServer - была разработана для устранения недостатка в JSP, а именно, что для вызова библиотек Java со страницы JSP требовался более простой способ.Предыдущий способ сделать это - выйти на Java с <%, %> и <%= и сделать то, что вам нужно, что привело к очень сложным и трудным в обслуживании страниц JSP.

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

Определения тегов могут делать все, что вы можете делать в Java, но вы должны тщательно продумать, что и где вы делаете.Например, наличие SQL-запросов на вашей JSP-странице означает, что вы связываете бизнес-логику с фактическим представлением, которое, к сожалению, усвоено, также создает сложные и трудные в обслуживании веб-приложения.

1 голос
/ 26 июня 2011

Всегда ли оно используется на страницах JSP

Да.

... и используется только для получения данных из базы данных.

Нет. Фактически, в большинстве случаев это ПЛОХАЯ ПРАКТИКА для доступа к базе данных из JSP, используя JSTL или используя другие средства (например, скриптлеты).

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

В некотором роде. Но здесь не обязательно отображение 1: 1:

  • Не всем JSP требуется доступ к базе данных.
  • Java-сервлет может использовать несколько JSP для отображения разных выходных страниц.
  • Разные сервлеты могут совместно использовать одну JSP; например сделать страницу с распространенным сообщением об ошибке.

если да, какова роль кода JSTL в JSP.

Целью JSP является рендеринг вывода; как правило, HTML-страницы, но это может быть что-нибудь текстовое. JSTL используется в JSP, когда логика вывода вывода слишком сложна или грязна, чтобы выразить ее с помощью JSP EL.


UPDATE

Старомодная альтернатива JSTL и JSP EL - это встраивание кода Java ... то есть скриптлетов ... в JSP. Например:

<c:if test="${a == 'true'}">
    hi
</c:if>

эквивалентно примерно так:

<% if ("true".equals(context.findAttribute("a")) { %>
    hi
<% } %>

Также для использования JSTL, насколько я понимаю, он используется в JSP для динамического рендеринга HTML с помощью операторов if..else.

Вы описываете HTML, структура и содержание которого зависит от параметров запроса, параметров конфигурации, данных, извлекаемых из базы данных и т. Д. Это основное использование JSTL.

Однако это НЕ то, что обычно называют «динамическим HTML». Динамический HTML - это то, где браузер изменяет HTML отображаемой в данный момент страницы; например когда Javascript, встроенный в страницу, меняет отображаемую страницу, изменяя DOM.

0 голосов
/ 30 июня 2011

JSTL - это «набор пользовательских библиотек тегов» , разработанный в соответствии со спецификацией секции движка сервлета JSP-сервера J2EE . «Любой тег на странице разметки сервера Java J2EE spec», настроенный для Java-сервера, записанного в спецификации Java2 J2EE , представляет собой «реализацию пользовательского тега», будь то тег JSF, JSP, JSTL или база данных cudtom . Однако это не Java Bean (только очень похож на них по синтаксису и семантике при написании программы класса). Каждая библиотека пользовательских тегов имеет свой собственный набор полезных свойств в разметке java-сервера и поэтому система была разработана. Система Java Bean похожа, но выполняется на языке EL. «тег» использует как представление разметки на странице, так и его связанную (настроенную) .class файловую программу на сервере для обработки разметки страницы и интерфейса или объединения другие серверные процессы и программы . JSTL - это просто библиотека разметки сервера java для механизма JSP-сервелта, поскольку JSF - это разметка для механизма лиц-сервлетов, и оба являются только пользовательским тегом.

...