Неявні об'єкти JSP: повний посібник

Що таке JSP неявний об'єкт?

  • Неявні об'єкти JSP створюються на етапі перекладу JSP на сервлет.
  • Ці об'єкти можуть бути безпосередньо використані в скриптах, що входять до методу служби.
  • Вони створюються контейнером автоматично, і до них можна отримати доступ за допомогою об’єктів.

Скільки неявних об’єктів доступні в JSP?

У контейнері доступно 9 типів неявних об’єктів:

  1. назовні
  2. запит
  3. відповідь
  4. конфігурація
  5. застосування
  6. сесія
  7. pageContext
  8. сторінки
  9. виняток

Давайте вивчати по одному

назовні

  • 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 п’ятого елемента.

Цікаві статті...