В этой главе мы обсудим синтаксис в JSP. Мы поймем основное использование простого синтаксиса (то есть элементов), связанного с разработкой JSP.
Элементы JSP
Элементы JSP были описаны ниже —
Скриплет
Скриплет может содержать любое количество операторов языка JAVA, объявлений переменных или методов или выражений, допустимых на языке сценариев страниц.
Ниже приводится синтаксис Scriptlet —
<% code fragment %>
Вы можете написать XML-эквивалент вышеуказанного синтаксиса следующим образом:
<jsp:scriptlet> code fragment </jsp:scriptlet>
Любой текст, теги HTML или элементы JSP, которые вы пишете, должны находиться за пределами скриптлета. Ниже приведен простой и первый пример для JSP:
<html> <head><title>Hello World</title></head> <body> Hello World!<br/> <% out.println("Your IP address is " + request.getRemoteAddr()); %> </body> </html>
ПРИМЕЧАНИЕ. — При условии, что Apache Tomcat установлен в C: \ apache-tomcat-7.0.2, а ваша среда настроена в соответствии с руководством по настройке среды.
Давайте сохраним приведенный выше код в файле JSP hello.jsp и поместим этот файл в каталог C: \ apache-tomcat7.0.2 \ webapps \ ROOT . Просмотрите то же самое, используя URL http: // localhost: 8080 / hello.jsp . Приведенный выше код сгенерирует следующий результат —
Декларации JSP
Объявление объявляет одну или несколько переменных или методов, которые вы можете использовать в коде Java позже в файле JSP. Вы должны объявить переменную или метод, прежде чем использовать его в файле JSP.
Ниже приводится синтаксис для объявлений JSP —
<%! declaration; [ declaration; ]+ ... %>
Вы можете написать XML-эквивалент вышеуказанного синтаксиса следующим образом:
<jsp:declaration> code fragment </jsp:declaration>
Ниже приведен пример для деклараций JSP:
<%! int i = 0; %> <%! int a, b, c; %> <%! Circle a = new Circle(2.0); %>
JSP Expression
Элемент выражения JSP содержит выражение языка сценариев, которое оценивается, преобразуется в строку и вставляется там, где выражение появляется в файле JSP.
Поскольку значение выражения преобразуется в строку, вы можете использовать выражение в строке текста, независимо от того, помечено ли оно тегом HTML, в файле JSP.
Элемент expression может содержать любое выражение, допустимое в соответствии со спецификацией языка Java, но вы не можете использовать точку с запятой для завершения выражения.
Ниже приведен синтаксис выражения JSP —
<%= expression %>
Вы можете написать XML-эквивалент вышеуказанного синтаксиса следующим образом:
<jsp:expression> expression </jsp:expression>
В следующем примере показано выражение JSP —
<html> <head><title>A Comment Test</title></head> <body> <p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p> </body> </html>
Приведенный выше код сгенерирует следующий результат —
Today's date: 11-Sep-2010 21:24:25
Today’s date: 11-Sep-2010 21:24:25
Комментарии JSP
Комментарий JSP отмечает текст или операторы, которые контейнер JSP должен игнорировать. Комментарий JSP полезен, когда вы хотите скрыть или «закомментировать» часть вашей страницы JSP.
Ниже приводится синтаксис комментариев JSP —
<%-- This is JSP comment --%>
В следующем примере показаны комментарии JSP —
<html> <head><title>A Comment Test</title></head> <body> <h2>A Test of Comments</h2> <%-- This comment will not be visible in the page source --%> </body> </html>
Приведенный выше код сгенерирует следующий результат —
A Test of Comments
Существует небольшое количество специальных конструкций, которые вы можете использовать в различных случаях для вставки комментариев или символов, которые иначе были бы обработаны специально. Вот резюме —
S.No. | Синтаксис и цель |
---|---|
1 |
<% — комментарий -%> Комментарий JSP. Игнорируется двигателем JSP. |
2 |
<! — комментарий -> HTML-комментарий. Игнорируется браузером. |
3 |
<\% Представляет статический <% литерал. |
4 |
% \> Представляет статический%> литерал. |
5 |
\» Одиночная кавычка в атрибуте, который использует одинарные кавычки. |
6 |
\» Двойная кавычка в атрибуте, который использует двойные кавычки. |
<% — комментарий -%>
Комментарий JSP. Игнорируется двигателем JSP.
<! — комментарий ->
HTML-комментарий. Игнорируется браузером.
<\%
Представляет статический <% литерал.
% \>
Представляет статический%> литерал.
\»
Одиночная кавычка в атрибуте, который использует одинарные кавычки.
\»
Двойная кавычка в атрибуте, который использует двойные кавычки.
Директивы JSP
Директива JSP влияет на общую структуру класса сервлета. Это обычно имеет следующую форму —
<%@ directive attribute="value" %>
Существует три типа директив тега —
S.No. | Директива и описание |
---|---|
1 |
<% @ page …%> Определяет зависящие от страницы атрибуты, такие как язык сценариев, страница ошибок и требования к буферизации. |
2 |
<% @ include …%> Включает файл на этапе перевода. |
3 |
<% @ taglib …%> Объявляет библиотеку тегов, содержащую пользовательские действия, используемые на странице |
<% @ page …%>
Определяет зависящие от страницы атрибуты, такие как язык сценариев, страница ошибок и требования к буферизации.
<% @ include …%>
Включает файл на этапе перевода.
<% @ taglib …%>
Объявляет библиотеку тегов, содержащую пользовательские действия, используемые на странице
Мы объясним директиву JSP в отдельной главе JSP — Директивы
Действия JSP
Действия JSP используют конструкции в синтаксисе XML для управления поведением механизма сервлета. Вы можете динамически вставлять файл, повторно использовать компоненты JavaBeans, перенаправлять пользователя на другую страницу или генерировать HTML для плагина Java.
Для элемента Action существует только один синтаксис, так как он соответствует стандарту XML —
<jsp:action_name attribute="value" />
Элементы действия — это в основном предопределенные функции. В следующей таблице перечислены доступные действия JSP.
S.No. | Синтаксис и цель |
---|---|
1 |
JSP: включить Включает файл во время запроса страницы. |
2 |
JSP: useBean Находит или создает экземпляр JavaBean. |
3 |
JSP: SetProperty Устанавливает свойство JavaBean. |
4 |
JSP: GetProperty Вставляет свойство JavaBean в вывод. |
5 |
JSP: вперед Переадресует запрос на новую страницу. |
6 |
JSP: плагин Генерирует специфичный для браузера код, который создает тег OBJECT или EMBED для плагина Java. |
7 |
JSP: элемент Определяет элементы XML динамически. |
8 |
JSP: атрибут Определяет динамически определенный атрибут элемента XML. |
9 |
JSP: тело Определяет динамически определяемое тело XML-элемента. |
10 |
JSP: текст Используется для написания текста шаблона на страницах и документах JSP. |
JSP: включить
Включает файл во время запроса страницы.
JSP: useBean
Находит или создает экземпляр JavaBean.
JSP: SetProperty
Устанавливает свойство JavaBean.
JSP: GetProperty
Вставляет свойство JavaBean в вывод.
JSP: вперед
Переадресует запрос на новую страницу.
JSP: плагин
Генерирует специфичный для браузера код, который создает тег OBJECT или EMBED для плагина Java.
JSP: элемент
Определяет элементы XML динамически.
JSP: атрибут
Определяет динамически определенный атрибут элемента XML.
JSP: тело
Определяет динамически определяемое тело XML-элемента.
JSP: текст
Используется для написания текста шаблона на страницах и документах JSP.
Мы объясним действия JSP в отдельной главе JSP — Действия
Неявные объекты JSP
JSP поддерживает девять автоматически определенных переменных, которые также называются неявными объектами. Эти переменные —
S.No. | Объект и описание |
---|---|
1 |
запрос Это объект HttpServletRequest, связанный с запросом. |
2 |
ответ Это объект HttpServletResponse, связанный с ответом клиенту. |
3 |
из Это объект PrintWriter, используемый для отправки вывода клиенту. |
4 |
сессия Это объект HttpSession, связанный с запросом. |
5 |
приложение Это объект ServletContext, связанный с контекстом приложения. |
6 |
конфиг Это объект ServletConfig, связанный со страницей. |
7 |
PageContext Это инкапсулирует использование специфичных для сервера функций, таких как JspWriters с более высокой производительностью. |
8 |
страница Это просто синоним этого и используется для вызова методов, определенных переведенным классом сервлета. |
9 |
исключение Объект Exception позволяет получить доступ к данным исключения с помощью назначенного JSP. |
запрос
Это объект HttpServletRequest, связанный с запросом.
ответ
Это объект HttpServletResponse, связанный с ответом клиенту.
из
Это объект PrintWriter, используемый для отправки вывода клиенту.
сессия
Это объект HttpSession, связанный с запросом.
приложение
Это объект ServletContext, связанный с контекстом приложения.
конфиг
Это объект ServletConfig, связанный со страницей.
PageContext
Это инкапсулирует использование специфичных для сервера функций, таких как JspWriters с более высокой производительностью.
страница
Это просто синоним этого и используется для вызова методов, определенных переведенным классом сервлета.
исключение
Объект Exception позволяет получить доступ к данным исключения с помощью назначенного JSP.
Мы объясним JSP Implicit Objects в отдельной главе JSP — Неявные Объекты .
Заявления о потоке управления
Вы можете использовать все API и строительные блоки Java в своем JSP-программировании, включая операторы принятия решений, циклы и т. Д.
Заявления о принятии решений
Блок if … else начинается как обычный Scriptlet, но Scriptlet закрывается в каждой строке HTML-текстом, включенным между тегами Scriptlet.
<%! int day = 3; %> <html> <head><title>IF...ELSE Example</title></head> <body> <% if (day == 1 || day == 7) { %> <p> Today is weekend</p> <% } else { %> <p> Today is not weekend</p> <% } %> </body> </html>
Приведенный выше код сгенерирует следующий результат —
Today is not weekend
Теперь посмотрим на следующий параметр switch … case, который был написан несколько иначе с использованием out.println () и внутри Scriptletas —
<%! int day = 3; %> <html> <head><title>SWITCH...CASE Example</title></head> <body> <% switch(day) { case 0: out.println("It\'s Sunday."); break; case 1: out.println("It\'s Monday."); break; case 2: out.println("It\'s Tuesday."); break; case 3: out.println("It\'s Wednesday."); break; case 4: out.println("It\'s Thursday."); break; case 5: out.println("It\'s Friday."); break; default: out.println("It's Saturday."); } %> </body> </html>
Приведенный выше код сгенерирует следующий результат —
It's Wednesday.
It’s Wednesday.
Loop Заявления
Вы также можете использовать три основных типа циклических блоков в Java: блоки for, while и do… while в вашем JSP-программировании.
Давайте посмотрим на следующий пример цикла —
<%! int fontSize; %> <html> <head><title>FOR LOOP Example</title></head> <body> <%for ( fontSize = 1; fontSize <= 3; fontSize++){ %> <font color = "green" size = "<%= fontSize %>"> JSP Tutorial </font><br /> <%}%> </body> </html>
Приведенный выше код сгенерирует следующий результат —
JSP Tutorial
JSP Tutorial
JSP Tutorial
Приведенный выше пример может быть записан с использованием цикла while следующим образом:
<%! int fontSize; %> <html> <head><title>WHILE LOOP Example</title></head> <body> <%while ( fontSize <= 3){ %> <font color = "green" size = "<%= fontSize %>"> JSP Tutorial </font><br /> <%fontSize++;%> <%}%> </body> </html>
Приведенный выше код сгенерирует следующий результат —
JSP Tutorial JSP Tutorial JSP Tutorial
Операторы JSP
JSP поддерживает все логические и арифметические операторы, поддерживаемые Java. В следующей таблице перечислены все операторы с наивысшим приоритетом, которые отображаются вверху таблицы, а операторы с наименьшим приоритетом — внизу.
Внутри выражения операторы с более высоким приоритетом будут оцениваться первыми.
категория | оператор | Ассоциативность |
---|---|---|
постфикс | () []. (оператор точки) | Слева направо |
Одинарный | ++ — -! ~ | Справа налево |
Multiplicative | * /% | Слева направо |
присадка | + — | Слева направо |
сдвиг | >> >>> << | Слева направо |
реляционный | >> = <<= | Слева направо |
равенство | ==! = | Слева направо |
Побитовое И | & | Слева направо |
Побитовый XOR | ^ | Слева направо |
Побитовое ИЛИ | | | Слева направо |
Логическое И | && | Слева направо |
Логическое ИЛИ | || | Слева направо |
условный | ?: | Справа налево |
присваивание | = + = — = * = / =% = >> = << = & = ^ = | = | Справа налево |
запятая | , | Слева направо |
JSP Литералы
Язык выражений JSP определяет следующие литералы —
Логическое — верно и неверно
Целое число — как в Java
С плавающей точкой — как в Java
Строка — с одинарными и двойными кавычками; «экранируется как \», «экранируется как \», а \ экранируется как \\.
Нуль — ноль