Що таке JSP неявний об'єкт?
- Неявні об'єкти JSP створюються на етапі перекладу JSP на сервлет.
- Ці об'єкти можуть бути безпосередньо використані в скриптах, що входять до методу служби.
- Вони створюються контейнером автоматично, і до них можна отримати доступ за допомогою об’єктів.
Скільки неявних об’єктів доступні в JSP?
У контейнері доступно 9 типів неявних об’єктів:
- назовні
- запит
- відповідь
- конфігурація
- застосування
- сесія
- pageContext
- сторінки
- виняток
Давайте вивчати по одному
назовні
- Out - це один із неявних об'єктів для запису даних у буфер та надсилання виводу клієнту у відповідь
- Об'єкт Out дозволяє нам отримати доступ до вихідного потоку сервлета
- Out є об'єктом класу javax.servlet.jsp.jspWriter
- Під час роботи з сервлетом нам потрібен об’єкт друкарки
Приклад:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Неявний гуру JSP1 <% int num1 = 10; int num2 = 20;out.println ("num1 - це" + num1);out.println ("num2 - це" + num2);%>
Пояснення коду:
Кодовий рядок 11-12 - out використовується для друку у вихідний потік
Коли ми виконуємо наведений вище код, ми отримуємо такий результат:
Вихід:
- На виході ми отримуємо значення num1 та num2
Запит
- Об'єкт запиту є екземпляром java.servlet.http.HttpServletRequest, і це один з аргументів методу служби
- Він буде створений контейнером для кожного запиту.
- Він буде використовуватися для запиту такої інформації, як параметр, інформація заголовка, назва сервера тощо.
- Він використовує getParameter () для доступу до параметра запиту.
Приклад:
Implicit_jsp2.jsp (форма, з якої запит надсилається на guru.jsp)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Неявна форма гуру JSP2
Guru.jsp (де здійснюється дія)
Пояснення коду:
Рядок коду 10-13: В implicit_jsp2.jsp (форма) надсилається запит, отже, змінна ім'я користувача обробляється та надсилається до guru.jsp, що є дією JSP.
Guru.jsp
Кодовий рядок 10-11: Це дія jsp, де обробляється запит, а ім’я користувача береться з форми jsp.
Коли ви виконуєте наведений вище код, ви отримуєте такий результат
Вихід:
Коли ви пишете тест і натискаєте кнопку подати, ви отримуєте наступний результат "Ласкаво просимо тест".
Відповідь
- "Відповідь" - це екземпляр класу, який реалізує інтерфейс HttpServletResponse
- Контейнер генерує цей об'єкт і передає метод _jspservice () як параметр
- "Об'єкт відповіді" буде створений контейнером для кожного запиту.
- Він являє собою відповідь, яку можна дати клієнту
- Неявний об'єкт відповіді використовується для типу вмісту, додавання файлів cookie та перенаправлення на сторінку відповіді
Приклад:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Неявний гуру JSP4 <% response.setContentType ("текст / html"); %>
Пояснення коду:
Рядок коду 11: В об'єкті відповіді ми можемо встановити тип вмісту
Тут ми встановлюємо лише тип вмісту в об’єкті відповіді. Отже, для цього немає результату.
Налаштувати
- "Конфігурація" має тип java.servlet.servletConfig
- Він створюється контейнером для кожної jsp-сторінки
- Він використовується для отримання параметра ініціалізації в web.xml
Приклад:
Web.xml (вказує назву та відображення сервлета)
Implicit_jsp5.jsp (отримання значення імені сервлета)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Неявний гуру JSP5 <% Рядок servletName = config.getServletName ();out.println ("Ім'я сервлета" + ім'я сервлета);%>
Пояснення коду:
У web.xml
Рядок коду 14-17: У web.xml ми маємо відображення сервлетів у класи.
Implicit_jsp5.jsp
Рядок коду 10-11: Щоб отримати ім'я сервлету в JSP, ми можемо використовувати config.getServletName, який допоможе нам отримати ім'я сервлету.
При виконанні наведеного вище коду ви отримуєте такий результат:
Вихід:
- Ім'я сервлета - "GuruServlet", оскільки ім'я присутнє в web.xml
Застосування
- Об'єкт програми (рядок коду 10) є екземпляром javax.servlet.ServletContext і використовується для отримання контекстної інформації та атрибутів у JSP.
- Об'єкт програми створюється контейнером по одному на програму, коли програма розгортається.
- Об'єкт Servletcontext містить набір методів, які використовуються для взаємодії з контейнером сервлетів. Ми можемо знайти інформацію про контейнер сервлетів
Приклад:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Guru Implicit JSP6 <% application.getContextPath (); %>
Пояснення коду:
- У наведеному вище коді атрибут application допомагає отримати контекстний шлях сторінки JSP.
Сесія
- Сеанс містить об'єкт "httpsession" (рядок коду 10).
- Об'єкт сеансу використовується для отримання, встановлення та видалення атрибутів до обсягу сеансу, а також для отримання інформації про сеанс
Приклад:
Implicit_jsp7 (атрибут встановлено)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Неявний JSP <% session.setAttribute ("користувач", "GuruJSP"); %> Натисніть тут, щоб отримати ім’я користувача
Implicit_jsp8.jsp (getAttribute)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>неявний Guru JSP8 <% Ім'я рядка = (Рядок) session.getAttribute ("користувач");out.println ("Ім'я користувача" + ім'я);%>
Пояснення коду:
Implicit_jsp7.jsp
Рядок коду 11: ми встановлюємо атрибут user у змінну сеансу, і це значення можна отримати з сеансу в залежності від того, який jsp викликається з цього (_jsp8.jsp).
Рядок коду 12: Ми викликаємо інший jsp на href, в якому отримаємо значення для атрибута user, яке встановлено.
Implicit_jsp8.jsp
Рядок коду 11: Ми отримуємо значення атрибута користувача з об’єкта сеансу та відображаємо це значення
При виконанні наведеного вище коду ви отримуєте такий результат:
Коли ви натискаєте на посилання для імені користувача. Ви отримаєте наступний результат.
Вихід:
- Коли ми натискаємо на посилання, вказане в implicit_jsp7.jsp, тоді ми перенаправляємось на другу сторінку jsp, тобто сторінку (_jsp8.jsp), і ми отримуємо значення з сеансу об'єкта атрибута користувача (_jsp7.jsp).
pageContext:
- Цей об’єкт має тип pagecontext.
- Він використовується для отримання, встановлення та видалення атрибутів із певної області дії
Області застосування бувають 4 типів:
- Сторінка
- Запит
- Сесія
- Застосування
Приклад:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Явний Guru JSP9 <% pageContext.setAttribute ("студент", "gurustudent", pageContext.PAGE_SCOPE);Ім'я рядка = (Рядок) pageContext.getAttribute ("студент");out.println ("ім'я студента" + ім'я);%>
Пояснення коду:
Кодовий рядок 11: ми встановлюємо атрибут за допомогою об'єкта pageContext, і він має три параметри:
- Ключ
- Значення
- Сфера дії
У наведеному вище коді ключовим фактором є студент, а значенням є "gurustudent", тоді як область дії - область сторінки. Тут область дії - "сторінка", і її можна отримати лише за допомогою області сторінки.
Рядок коду 12: Ми отримуємо значення атрибута за допомогою pageContext
При виконанні наведеного вище коду ви отримуєте такий результат:
Вихід:
- На виході буде надруковано "ім'я студента є релевантним".
Сторінка
- Неявна змінна сторінки містить поточно виконаний об’єкт сервлету для відповідного jsp.
- Діє як цей об'єкт для поточної сторінки jsp.
Приклад:
У цьому прикладі ми використовуємо об’єкт сторінки, щоб отримати ім’я сторінки за допомогою методу toString
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Неявний гуру JSP10 <% String pageName = page.toString ();out.println ("Ім'я сторінки" + ім'я сторінки);%>
Пояснення коду:
Рядок коду 10-11: У цьому прикладі ми намагаємося використовувати метод toString () об'єкта сторінки та намагаємось отримати ім'я рядка Сторінки JSP.
При виконанні коду ви отримуєте такий результат:
Вихід:
- Вихідні дані - це ім'я рядка вище сторінки jsp
Виняток
- Виняток - неявний об’єкт класу, що викидається.
- Він використовується для обробки винятків у JSP.
- Об'єкт виключення можна використовувати лише на сторінках помилок.
Приклад:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%>Явний Guru JSP 11 <% int [] num1 = {1,2,3,4};out.println (num1 [5]);%><% = виняток%>
Пояснення коду:
Кодовий рядок 10-12 - Він має масив чисел, тобто num1 з чотирма елементами. На виході ми намагаємось надрукувати п'ятий елемент масиву з num1, який не оголошений у списку масивів. Тому він використовується для отримання об'єкта винятку jsp.
Вихід:
Ми отримуємо ArrayIndexOfBoundsException в масиві, де отримуємо масив num1 п’ятого елемента.