Какво е JSP Implicit обект?
- 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);%>
Обяснение на кода:
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 от петия елемент.