JSP неявни обекти: пълен урок

Съдържание:

Anonim

Какво е JSP Implicit обект?

  • 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);%>

Обяснение на кода:

Code Line 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"%> Имплицитен Guru от JSP2 

Guru.jsp (където се предприема действието)

Обяснение на кода:

Кодов ред 10-13: В implicit_jsp2.jsp (форма) се изпраща заявка, следователно променливата потребителско име се обработва и изпраща на guru.jsp, което е действие на JSP.

Guru.jsp

Код Line10-11: Това е действие jsp, където заявката се обработва и потребителското име се взема от формата jsp.

Когато изпълнявате горния код, получавате следния изход

Изход:

Когато напишете тест и щракнете върху бутона за изпращане, ще получите следния изход "Добре дошли тест".

Отговор

  • "Отговор" е екземпляр на клас, който реализира интерфейс HttpServletResponse
  • Контейнерът генерира този обект и преминава към метод _jspservice () като параметър
  • „Обект на отговор“ ще бъде създаден от контейнера за всяка заявка.
  • Той представлява отговора, който може да бъде даден на клиента
  • Имплицитният обект за отговор се използва за тип съдържание, добавяне на бисквитка и пренасочване към страницата за отговор

Пример:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Имплицитен гуру JSP4 <% response.setContentType ("text / html"); %>

Обяснение на кода:

Кодов ред 11: В обекта за отговор можем да зададем типа съдържание

Тук задаваме само типа съдържание в обекта за отговор. Следователно няма изход за това.

Конфигуриране

  • "Config" е от типа 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"%> Имплицитен Guru JSP5 <% String 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 (); %>

Обяснение на кода:

  • В горния код атрибутът на приложението помага да се получи контекстният път на 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: настройваме потребителя на атрибута в променливата на сесията и тази стойност може да бъде извлечена от сесията в зависимост от това кой jsp е извикан от нея (_jsp8.jsp).

Код ред 12: Извикваме друг jsp на href, в който ще получим зададената стойност за потребител на атрибут.

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

Когато изпълните горния код, получавате следния изход:

Изход:

  • Резултатът ще отпечата „име на студент е gurustudent“.

Страница

  • Page implicit променлива съдържа текущо изпълнения обект на сървлет за съответния jsp.
  • Действа като този обект за текущата jsp страница.

Пример:

В този пример използваме обект на страница, за да получим името на страницата, използвайки метода toString

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Имплицитен Guru JSP10 <% String pageName = page.toString ();out.println ("Името на страницата е" + pageName);%>

Обяснение на кода:

Кодов ред 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 от петия елемент.