Всегда ли оно используется на страницах 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.