Implicitné objekty JSP: Kompletný návod

Obsah:

Anonim

Čo je to implicitný objekt JSP?

  • Implicitné objekty JSP sa vytvárajú počas fázy prekladu JSP na servlet.
  • Tieto objekty môžu byť priamo použité v scripletoch, ktoré sú súčasťou servisnej metódy.
  • Vytvorí ich kontajner automaticky a je k nim prístup pomocou objektov.

Koľko implicitných objektov je k dispozícii v JSP?

V kontajneri je k dispozícii 9 typov implicitných objektov:

  1. von
  2. žiadosť
  3. odpoveď
  4. konfigur
  5. žiadosť
  6. zasadanie
  7. pageContext
  8. stránke
  9. výnimkou

Poďme študovať jeden po druhom

von

  • Out je jeden z implicitných objektov na zápis údajov do medzipamäte a odoslanie odpovede klientovi ako odpoveď
  • Objekt Out nám umožňuje prístup k výstupnému toku servletu
  • Von je objekt triedy javax.servlet.jsp.jspWriter
  • Pri práci s servletom potrebujeme objekt printwriter

Príklad:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitný Guru JSP1 <% int num1 = 10; int num2 = 20;out.println ("num1 je" + num1);out.println ("num2 je" + num2);%>

Vysvetlenie kódu:

Riadok kódu 11-12 - out sa používa na tlač do výstupného toku

Keď vykonáme vyššie uvedený kód, dostaneme nasledujúci výstup:

Výkon:

  • Na výstupe dostaneme hodnoty num1 a num2

Žiadosť

  • Objekt žiadosti je inštanciou java.servlet.http.HttpServletRequest a je jedným z argumentov servisnej metódy.
  • Bude vytvorený kontajnerom pre každú požiadavku.
  • Bude sa používať na vyžiadanie informácií, ako sú parametre, informácie o hlavičke, názov servera atď.
  • Na prístup k parametru požiadavky používa funkciu getParameter ().

Príklad:

Implicit_jsp2.jsp (formulár, z ktorého sa odosiela požiadavka na guru.jsp)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitný guru formulár JSP2 

Guru.jsp (kde sa podnikajú kroky)

Vysvetlenie kódu:

Riadok kódu 10-13: V implicit_jsp2.jsp (formulár) sa odosiela požiadavka, preto sa spracováva premenná username a posiela sa na guru.jsp, čo je akcia JSP.

Guru.jsp

Kód Line10-11: Je to akcia jsp, kde je spracovaná požiadavka a užívateľské meno je prevzaté z formulára jsp.

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup

Výkon:

Keď napíšete test a kliknete na tlačidlo odoslať, dostanete nasledujúci výstup „Uvítací test“.

Odozva

  • „Odozva“ je inštancia triedy, ktorá implementuje rozhranie HttpServletResponse
  • Kontajner vygeneruje tento objekt a odovzdá metódu _jspservice () ako parameter
  • „Objekt odpovede“ vytvorí kontajner pre každú požiadavku.
  • Predstavuje odpoveď, ktorú je možné poskytnúť klientovi
  • Implicitný objekt odpovede sa používa na typ obsahu, pridanie súboru cookie a presmerovanie na stránku odpovede

Príklad:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitný Guru JSP4 <% response.setContentType ("text / html"); %>

Vysvetlenie kódu:

Riadok kódu 11: V objekte odpovede môžeme nastaviť typ obsahu

Tu nastavujeme iba typ obsahu v objekte odpovede. Z tohto dôvodu neexistuje žiadny výstup.

Konfig

  • "Konfigurácia" je typu java.servlet.servletConfig
  • Je vytváraný kontajnerom pre každú stránku jsp
  • Používa sa na získanie inicializačného parametra v web.xml

Príklad:

Web.xml (určuje názov a mapovanie servletu)

Implicit_jsp5.jsp (získanie hodnoty názvu servletu)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitný Guru JSP5 <% String servletName = config.getServletName ();out.println ("Názov servletu je" + názov servletu);%>

Vysvetlenie kódu:

V súbore web.xml

Riadok kódu 14-17: V súbore web.xml máme mapovanie servletov do tried.

Implicit_jsp5.jsp

Riadok kódu 10-11: Na získanie názvu servletu v JSP môžeme použiť config.getServletName, ktorý nám pomôže získať názov servletu.

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup:

Výkon:

  • Názov servletu je „GuruServlet“, pretože je prítomný v súbore web.xml

Aplikácia

  • Aplikačný objekt (riadok kódu 10) je inštanciou javax.servlet.ServletContext a slúži na získanie kontextových informácií a atribútov v JSP.
  • Keď sa aplikácia nasadí, objekt aplikácie sa vytvorí kontajnerom jeden na aplikáciu.
  • Objekt Servletcontext obsahuje množinu metód, ktoré sa používajú na interakciu s kontajnerom servletu. Nájdeme informácie o kontajneri servletu

Príklad:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru Implicit JSP6 <% application.getContextPath (); %>

Vysvetlenie kódu:

  • Vo vyššie uvedenom kóde pomáha atribút aplikácie získať kontextovú cestu stránky JSP.

Session

  • Relácia obsahuje objekt „httpsession“ (riadok kódu 10).
  • Objekt relácie sa používa na získanie, nastavenie a odstránenie atribútov rozsahu relácie a tiež sa používa na získanie informácií o relácii

Príklad:

Implicit_jsp7 (atribút je nastavený)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitné JSP <% session.setAttribute ("užívateľ", "GuruJSP"); %> Kliknutím sem zobrazíte meno používateľa 

Implicit_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> implicitný Guru JSP8 <% Názov reťazca = (Reťazec) session.getAttribute ("užívateľ");out.println ("Meno používateľa je" + meno);%>

Vysvetlenie kódu:

Implicit_jsp7.jsp

Riadok kódu 11: nastavujeme atribút user do premennej relácie a túto hodnotu je možné načítať z relácie, v ktorej sa z nej volá jsp (_jsp8.jsp).

Riadok kódu 12: Voláme ďalší jsp na href, v ktorom dostaneme nastavenú hodnotu pre atribút user.

Implicit_jsp8.jsp

Riadok kódu 11: Získavame hodnotu atribútu používateľa z objektu relácie a túto hodnotu zobrazujeme

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup:

Keď kliknete na odkaz pre používateľské meno. Získate nasledujúci výstup.

Výkon:

  • Keď klikneme na odkaz uvedený v implicit_jsp7.jsp, sme presmerovaní na druhú stránku jsp, tj. (_Jsp8.jsp) a dostaneme hodnotu z objektu relácie atribútu používateľa (_jsp7.jsp).

pageContext:

  • Tento objekt je typu pagecontext.
  • Používa sa na získanie, nastavenie a odstránenie atribútov z konkrétneho rozsahu

Rozsahy sú 4 typov:

  • Strana
  • Žiadosť
  • Session
  • Aplikácia

Príklad:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitný Guru JSP9 <% pageContext.setAttribute ("student", "gurustudent", pageContext.PAGE_SCOPE);Názov reťazca = (Reťazec) pageContext.getAttribute ("študent");out.println ("meno študenta je" + meno);%>

Vysvetlenie kódu:

Riadok kódu 11: nastavujeme atribút pomocou objektu pageContext a má tri parametre:

  • Kľúč
  • Hodnota
  • Rozsah

Vo vyššie uvedenom kóde je kľúčom študent a hodnota je „gurustudent“, zatiaľ čo rozsahom je rozsah stránky. Rozsah je tu „stránka“ a je možné ho získať iba pomocou rozsahu stránky.

Riadok kódu 12: Hodnotu atribútu dostávame pomocou pageContext

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup:

Výkon:

  • Na výstupe sa vypíše „meno študenta je gurustudent“.

Strana

  • Implicitná premenná stránka obsahuje aktuálne vykonaný objekt servletu pre zodpovedajúci jsp.
  • Funguje ako tento objekt pre aktuálnu stránku jsp.

Príklad:

V tomto príklade používame objekt stránky na získanie názvu stránky pomocou metódy toString

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicitný Guru JSP10 <% String pageName = page.toString ();out.println ("Názov stránky je" + pageName);%>

Vysvetlenie kódu:

Riadok kódu 10-11: V tomto príklade sa pokúšame použiť metódu toString () objektu stránky a pokúsiť sa získať názov reťazca stránky JSP.

Po spustení kódu získate nasledujúci výstup:

Výkon:

  • Výstupom je názov reťazca stránky jsp vyššie

Výnimka

  • Výnimkou je implicitný objekt vyhadzovacej triedy.
  • Používa sa na spracovanie výnimiek v JSP.
  • Objekt výnimky je možné použiť iba na chybových stránkach.

    Príklad:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%> Implicitný Guru JSP 11 <% int [] num1 = {1,2,3,4};out.println (num1 [5]);%><% = výnimka%>

Vysvetlenie kódu:

Riadok kódu 10-12 - Má rad čísel, tj. Num1 so štyrmi prvkami. Na výstupe sa pokúšame vytlačiť piaty prvok poľa z čísla 1, ktorý nie je deklarovaný v zozname polí. Používa sa teda na získanie výnimočného objektu jsp.

Výkon:

Dostávame ArrayIndexOfBoundsException v poli, kde dostávame pole num1 piateho prvku.