Мова експресії в JSP
⚡ Розумний підсумок
Мова виразів у JSP спрощує доступ до даних, що зберігаються в JavaБіни та неявні об'єкти, такі як запит, сеанс та додаток. Введений у JSP 2.0, він підтримує арифметичні, логічні та реляційні оператори, а також оператори прийняття рішень та цикли, записані всередині тегів EL.
Що таке мова експресії (EL)?
Expression Language (EL) — це механізм, який спрощує доступність даних, що зберігаються в Java компонент bean та інші об’єкти, такі як запит, сесія та програма тощо.
У JSP є багато операторів, які використовуються в EL, наприклад арифметичні та логічні оператори для виконання виразу. Він був представлений у JSP 2.0
JSP Syntax of Expression Language (EL)
Синтаксис EL ${вираз}
- У JSP все, що міститься в фігурних дужках, оцінюється під час виконання й надсилається у вихідний потік.
- Вираз є дійсним виразом EL, і його можна змішувати зі статичним текстом і поєднувати з іншим виразом для створення більшого виразу.
Щоб краще зрозуміти, як працює вираз у JSP, ми розглянемо приклад нижче. У цьому прикладі ми побачимо, як EL використовується як оператор для додавання двох чисел (1+2) і отримання результату відповідно.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP1</title> </head> <body> <a>Expression is:</a> ${1+2}; </body> </html>
Пояснення Code:
- Code Лінія 11: Мова виразів (EL) встановлена так, що ми додаємо два числа 1+2, отже, виведеться як 3.
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
Вихід:
- Вираз: 3 (Оскільки числа 1+2 будуть додані та слугуватимуть результатом)
Заяви керування потоком:
JSP забезпечує потужність Java для вбудовування в додаток. Ми можемо використовувати всі API та будівельні блоки Java in JSP програмування включаючи оператори потоку керування, які включають прийняття рішень і оператори циклу.
Існує два типи операторів керування потоком, описаних нижче;
- Заяви про прийняття рішень
- Операції циклу
Заяви щодо прийняття рішень:
Інструкція про прийняття рішення в JSP базується на тому, чи встановлена умова істинна чи хибна. Заява буде поводитися відповідно.
Нижче описано два типи заяв про прийняття рішень:
- Якщо – інакше
- перемикання
JSP If-else
Інструкція «Якщо інакше» є базовою серед усіх інструкцій потоку керування, і вона повідомляє програмі виконати певну частину коду, лише якщо певний тест оцінюється як істинний.
Ця умова використовується для перевірки кількох умов, чи є вони істинними чи хибними.
- Якщо перша умова істинна, тоді виконується «блок if».
- якщо він false, виконується «блок else».
Синтаксис оператора if – else:
If(test condition) { //Block of statements } else { //Block of statements }
У цьому прикладі ми збираємося перевірити умову «if else», взявши змінну та перевіривши значення, чи збігається змінна з тим, що вона ініціалізована:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP2</title> </head> <body> <%! int month=5; %> <% if(month==2){ %> <a>Its February</a> <% }else{ %> <a>Any month other than February</a> <%} %> </body> </html>
Пояснення коду:
- Code Лінія 10: Змінна з назвою місяць ініціалізується значенням 5 у тегах виразу
- Code Лінія 11: У тегах EL є «умова якщо», яка вказує, що якщо місяць дорівнює 2 (умова тут перевіряється як істинна чи хибна)
- Code Лінія 12: Якщо умова істинна, тобто змінна місяць дорівнює 2, тоді вона буде надрукована у вихідний потік
- Code Рядок 13-15: Якщо наведена вище умова if не виконується, тоді вона переміститься до частини else для всіх інших випадків, коли оператор друкуватиметься у вихідному потоці, а умова буде закрита
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
вихід:
- Оскільки місяць у нас дорівнює 5, що не дорівнює №2 (лютий). Отже, ми маємо результат «Будь-який місяць, окрім лютого» (місяць згадується як 5, отже виконуються інші)
Перемикач JSP
Тіло оператора switch називається «блоком switch».
- Регістр switch використовується для перевірки кількості можливих шляхів виконання.
- Перемикач можна використовувати з усіма типами даних
- Інструкції switch містять більше ніж один випадок і один випадок за замовчуванням
- Він обчислює вираз, а потім виконує всі оператори після відповідного регістру
Синтаксис оператора switch:
switch (operator) { Case 1: Block of statements break; Case 2: Block of statements break; case n: Block of statements break; default: Block of statements break; }
- Блок Switch починається з одного параметра, який є оператором, який потрібно передати and
- Потім є різні випадки, які забезпечують умову, і той випадок, який відповідає оператору, виконується.
У наведеному нижче прикладі ми визначили змінну тиждень, і вона зіставляється з випадком, який є істинним. У цьому випадку тиждень дорівнює 2, отже, 2nd регістр збігається, а результатом є вівторок:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP3</title> </head> <body> <%! int week=2; %> <% switch(week){ case 0: out.println("Sunday"); break; case 1: out.println("Monday"); break; case 2: out.println("Tuesday"); break; case 3: out.println("wednesday"); break; case 4: out.println("Thursday"); break; case 5: out.println("Friday"); break; default: out.println("Saturday"); } %> </body> </html>
Пояснення Code:
- Code Лінія 10: Змінна з назвою тиждень ініціалізується значенням 2 у тегах виразу
- Code Лінія 11: У тегах EL починається регістр перемикання, де тиждень передається як параметр
- Code Рядки 12 – 29: Усі випадки були згадані, починаючи від випадку 0 до випадку 5, де значення параметра тижня збігається з випадками, і відповідно виводиться друк. У цьому випадку значення дорівнює 2, тому в цьому випадку буде виконано випадок 2. Тут «out» — це клас JSP, який записує вихідний потік для згенерованої відповіді, а «println» — це метод цього класу.
- Code Рядок 30-32: Якщо вищевказані всі випадки не вдаються, тоді він переміститься до частини за замовчуванням і буде виконано, де оператор буде надруковано у вихідному потоці, а умова буде закрита
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
вихід:
- Результатом у цьому випадку є вівторок, оскільки називається 2-й випадок.
Оператори циклу:
Цикл JSP For
Він використовується для ітерації елементів для певної умови та має три параметри.
- Лічильник змінної ініціалізовано
- Умова до виконання циклу
- Лічильник потрібно збільшити
Синтаксис циклу For:
For(inti=0;i<n;i++) { //block of statements }
У цьому прикладі ми маємо цикл for, який повторюється, доки лічильник не стане меншим за задане число:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP4</title> </head> <body> <%! int num=5; %> <% out.println("Numbers are:"); for(int i=0;i<num;i++){ out.println(i); }%> </body> </html>
Пояснення до коду:
- Code Лінія 10: Змінна з іменем «num» ініціалізується значенням 5 у тегах виразів
- Code Рядок 11-14: У тегах EL «out» — це клас JSP, а «println» — це метод out, який друкує вихідний потік і запускає цикл for, який має три параметри:
- Змінна i ініціалізується 0,
- Задається умова, де i має бути меншим за локальну змінну num,
- І збільшується щоразу, коли цикл виконується.
У тілі “forloop” є клас JSP, який друкує у вихідний потік за допомогою методу println, де ми друкуємо змінну i.
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
вихід:
- Вихід Numbers дорівнює 0 1 2 3 4. У цьому прикладі ми задаємо умову, що доки лічильник не стане меншим ніж дорівнює змінній, має бути виконано «цикл for». Число дорівнює 5, тому цикл розпочнеться з 0 і триватиме до 4 (5 разів). Звідси вихід.
Цикл JSP While
Він використовується для повторення елементи де він має один параметр умови.
Синтаксис:
While(i<n) { //Block of statements }
У цьому прикладі ми маємо цикл while, який повторюватиметься до тих пір, поки день не буде більшим за лічильник:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP5</title> </head> <body> <%! int day=2; int i=1; %> <% while(day>=i){ if(day==i){ out.println("Its Monday"); break;} i++;} %> </body> </html>
Пояснення коду:
- Code Лінія 10: Змінна з іменем i ініціалізується значенням 1, а день — 2 у тегах виразу
- Code Рядок 11-17: У тегах EL є цикл «while», який повторюється, доки не буде встановлено умову, тобто якщо день більший або дорівнює i-й змінній, це буде істинно (day>=i). Усередині нього є умова «if condition» (day дорівнює i), і «if condition» істинна, тоді буде виведено вихідний потік і відбудеться вихід з циклу while, інакше змінна i буде інкрементована, і цикл повторюється.
Коли ми виконаємо код, ми матимемо наступний результат
Вихід:
- Результатом цього коду буде «своє Monday".
JSP Operaторс
JSP Operators підтримує більшість своїх арифметичних і логічних операторів, які підтримуються Ява в тегах мови вираження (EL). Нижче наведено оператори, які часто використовуються:
Ось оператори:
| . | Доступ до властивості компонента або запису карти |
| [] | Доступ до масиву або елемента списку |
| () | Згрупуйте підвираз, щоб змінити порядок обчислення |
| + | Доповнення |
| - | нижчеtracзаперечення або заперечення значення |
| * | Множення |
| / або div | Роздільна |
| % або мод | Modulo (залишок) |
| == або екв | Тест на рівність |
| != або ne | Перевірка нерівності |
| < або lt | Тест на менше ніж |
| > або gt | Тест на більше ніж |
| <= або le | Тест на менше або рівне |
| >= або ge | Перевірка на більше або рівне |
| && або і | Тест на логічне І |
| || або або | Тест на логічне АБО |
| ! чи ні | Унарне логічне доповнення |
| порожній | Перевірте значення порожніх змінних |
У цьому прикладі
- Ми оголошуємо дві змінні num1 і num2, а потім беремо змінну num3, де використовуємо оператор JSP + by, щоб додати num1 і num2 і отримати num3.
- Потім ми перевіряємо умову, чи не дорівнює num3 0, використовуючи оператори JSP (!=, >) та
- Потім візьмемо іншу змінну num4, помноживши два num1 і num2, отримаємо num4.
Ці всі числа повинні бути роздруковані як наш результат:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru JSP6</title> </head> <body> <% int num1=10; int num2 = 50; int num3 = num1+num2; if(num3 != 0 || num3 > 0){ int num4= num1*num2; out.println("Number 4 is " +num4); out.println("Number 3 is " +num3); }%> </body> </html>
Пояснення коду:
- Code Лінія 10: Змінна з іменем num1 ініціалізується на 10, а num2 на 50 у тегах виразу
- Code Лінія 11: Змінна num3 є сумою num1 і num2, де ми використовуємо оператор додавання
- Code Рядок 12-16: У тегах EL ми використовували умову АБО, яка є логічним оператором, та арифметичними операторами для перевірки, чи num3 більше за 0 в умові if. АБО використовується, коли будь-яка з умов істинна, у такому випадку вона потрапляє у випадок «if», де ми множимо два числа «num1» та «num2» та отримуємо вивід у «num4», і вона друкує вихідний потік.
Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.
вихід:
- Перший вихід: число 4 дорівнює 500 (змінна num4, яка є num1*num2)
- Другий вихід: число 3 дорівнює 60 (змінна num3, яка num1+num2)







