JSP netiešie objekti: Pabeidziet apmācību

Satura rādītājs:

Anonim

Kas ir JSP implicit objekts?

  • JSP netiešie objekti tiek izveidoti JSP tulkošanas posmā servletī.
  • Šos objektus var tieši izmantot fragmentos, kas iekļauti apkalpošanas metodē.
  • Tvertne tos izveido automātiski, un tiem var piekļūt, izmantojot objektus.

Cik netiešo objektu ir pieejami JSP?

Konteinerā ir pieejami 9 netiešo objektu veidi:

  1. ārā
  2. pieprasījumu
  3. atbildi
  4. konfigurēt
  5. pieteikumu
  6. sesija
  7. pageContext
  8. lappuse
  9. izņēmums

Ļauj studēt pa vienam

ārā

  • Out ir viens no netiešajiem objektiem, lai ierakstītu datus buferī un nosūtītu izvadi klientam, atbildot
  • Out objekts ļauj mums piekļūt servletīklu izvades straumei
  • Out ir klases javax.servlet.jsp.jspWriter objekts
  • Strādājot ar servletu, mums ir nepieciešams printwriter objekts

Piemērs:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Netiešais Guru JSP1 <ķermenis><% int num1 = 10; int num2 = 20;out.println ("num1 ir" + num1);out.println ("num2 ir" + num2);%>

Koda skaidrojums:

Kodu rinda 11-12 - out tiek izmantota, lai drukātu izvades straumē

Izpildot iepriekš minēto kodu, mēs iegūstam šādu izvadi:

Izeja:

  • Izejā mēs iegūstam num1 un num2 vērtības

Pieprasījums

  • Pieprasījuma objekts ir java.servlet.http.HttpServletRequest eksemplārs, un tas ir viens no apkalpošanas metodes argumentiem
  • Katram pieprasījumam to izveidos konteiners.
  • To izmantos, lai pieprasītu tādu informāciju kā parametrs, galvenes informācija, servera nosaukums utt.
  • Lai piekļūtu pieprasījuma parametram, tas izmanto getParameter ().

Piemērs:

Implicit_jsp2.jsp (veidlapa, no kuras pieprasījums tiek nosūtīts uz guru.jsp)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Netiešā Guru forma JSP2 <ķermenis>

Guru.jsp (kur tiek veikta darbība)

Koda skaidrojums:

Kodu rinda 10-13: Ja implicit_jsp2.jsp (veidlapa) tiek nosūtīts pieprasījums, mainīgais lietotājvārds tiek apstrādāts un nosūtīts uz guru.jsp, kas ir JSP darbība.

Guru.jsp

Koda rinda 10-11: pieprasījums tiek apstrādāts ar darbību jsp, un lietotājvārds tiek ņemts no formas jsp.

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja

Izeja:

Rakstot testu un noklikšķinot uz pogas Iesniegt, tiek parādīts šāds rezultāts "Welcome Test".

Atbilde

  • "Atbilde" ir klases eksemplārs, kas īsteno HttpServletResponse saskarni
  • Konteiners ģenerē šo objektu un kā parametrs pāriet uz metodi _jspservice ()
  • Katram pieprasījumam konteiners izveidos "Atbildes objektu".
  • Tas ir atbilde, ko klientam var sniegt
  • Atbildes netiešais objekts tiek izmantots satura tipam, sīkfaila pievienošanai un novirzīšanai uz atbildes lapu

Piemērs:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Netiešais Guru JSP4 <ķermenis><% response.setContentType ("text / html"); %>

Koda skaidrojums:

11. koda rindiņa: Atbildes objektā mēs varam iestatīt satura tipu

Šeit mēs atbildes objektā iestatām tikai satura tipu. Tādējādi tam nav izejas.

Konfigurēt

  • "Config" ir java.servlet.servletConfig tips
  • To izveido konteiners katrai jsp lapai
  • To izmanto, lai iegūtu inicializācijas parametru vietnē web.xml

Piemērs:

Web.xml (norāda servleta nosaukumu un kartēšanu)

Implicit_jsp5.jsp (iegūstot servleta nosaukuma vērtību)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Netiešais Guru JSP5 <ķermenis><% Virknes servleta nosaukums = config.getServletName ();out.println ("Serversīklietotnes nosaukums ir" + servletaNOSAUKUMS);%>

Koda skaidrojums:

Vietnē web.xml

Kodu rinda 14-17: Web.xml mums ir servletu kartēšana uz klasēm.

Netiešais_jsp5.jsp

Kodu rinda 10-11: Lai iegūtu servleta nosaukumu JSP, mēs varam izmantot config.getServletName, kas mums palīdzēs iegūt servleta nosaukumu.

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja:

Izeja:

  • Servleta nosaukums ir "GuruServlet", jo nosaukums ir atrodams vietnē web.xml

Pieteikums

  • Lietojumprogrammas objekts (10. koda rinda) ir javax.servlet.ServletContext gadījums, un to izmanto, lai iegūtu konteksta informāciju un atribūtus JSP.
  • Lietojumprogrammas objektu izveido konteiners viens katrai lietojumprogrammai, kad programma tiek izvietota.
  • Servletkonteksta objekts satur metožu kopu, kas tiek izmantotas, lai mijiedarbotos ar servleta konteineru. Mēs varam atrast informāciju par servleta konteineru

Piemērs:

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

Koda skaidrojums:

  • Iepriekš minētajā kodā lietojumprogrammas atribūts palīdz iegūt JSP lapas konteksta ceļu.

Sesija

  • Sesijā atrodas objekts “httpsession” (koda rindiņa 10).
  • Sesijas objekts tiek izmantots, lai iegūtu, iestatītu un noņemtu atribūtus sesijas darbības jomai, kā arī tiek izmantots, lai iegūtu informāciju par sesiju

Piemērs:

Implicit_jsp7 (atribūts ir iestatīts)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Netiešs JSP <ķermenis><% session.setAttribute ("lietotājs", "GuruJSP"); %> Noklikšķiniet šeit, lai iegūtu lietotāja vārdu 

Implicit_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> netiešais Guru JSP8 <ķermenis><% Virknes nosaukums = (virkne) session.getAttribute ("lietotājs");out.println ("Lietotāja vārds ir" + vārds);%>

Koda skaidrojums:

Netiešais_jsp7.jsp

11. koda rindiņa: mēs iestatām atribūta lietotāju sesijas mainīgajā, un šo vērtību var iegūt no sesijas, kurā tiek izsaukts jsp (_jsp8.jsp).

Kodu rindiņa 12: Mēs izsaucam vēl vienu jsp uz href, kurā mēs iegūsim atribūta lietotājam iestatīto vērtību.

Netiešais_jsp8.jsp

11. koda rindiņa: Mēs iegūstam lietotāja atribūta vērtību no sesijas objekta un parādām šo vērtību

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja:

Noklikšķinot uz saites uz lietotājvārdu. Jūs saņemsiet šādu izvadi.

Izeja:

  • Noklikšķinot uz saites, kas norādīta implicit_jsp7.jsp, mēs tiekam novirzīti uz otro jsp lapu, ti, (_jsp8.jsp) lapu, un mēs iegūstam vērtību no lietotāja atribūta (_jsp7.jsp) sesijas objekta.

pageContext:

  • Šis objekts ir pagekonteksta tipa.
  • To izmanto, lai iegūtu, iestatītu un noņemtu atribūtus no noteiktas darbības jomas

Darbības jomas ir 4 veidu:

  • Lappuse
  • Pieprasījums
  • Sesija
  • Pieteikums

Piemērs:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Netiešais Guru JSP9 <ķermenis><% pageContext.setAttribute ("students", "gurustudent", pageContext.PAGE_SCOPE);Virknes nosaukums = (virkne) pageContext.getAttribute ("students");out.println ("studenta vārds ir" + vārds);%>

Koda skaidrojums:

11. koda rinda: mēs iestatām atribūtu, izmantojot objektu pageContext, un tam ir trīs parametri:

  • Atslēga
  • Vērtība
  • Darbības joma

Iepriekš minētajā kodā galvenais ir students un vērtība ir "gurustudent", savukārt darbības joma ir lapas darbības joma. Šeit darbības joma ir "lapa", un to var iegūt, izmantojot tikai lapas jomu.

12. koda rindiņa: mēs iegūstam atribūta vērtību, izmantojot pageContext

Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja:

Izeja:

  • Rezultātā tiks drukāts "studenta vārds ir gurustudents".

Lappuse

  • Lappuses implicit mainīgais tur pašreiz izpildīto servletīklu objektu attiecīgajam jsp.
  • Darbojas kā šis objekts pašreizējai jsp lapai.

Piemērs:

Šajā piemērā mēs izmantojam lapas objektu, lai iegūtu lapas nosaukumu, izmantojot toString metodi

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Netiešais Guru JSP10 <ķermenis><% String pageName = page.toString ();out.println ("Lapas nosaukums ir" + lapas nosaukums);%>

Koda skaidrojums:

Kodu rinda 10-11: Šajā piemērā mēs cenšamies izmantot lapas objekta metodi toString () un mēģinām iegūt JSP lapas virknes nosaukumu.

Izpildot kodu, tiek parādīta šāda izeja:

Izeja:

  • Izeja ir virknes nosaukums virs jsp lapas

Izņēmums

  • Izņēmums ir izmetamās klases netiešais objekts.
  • To izmanto izņēmumu apstrādei JSP.
  • Izņēmuma objektu var izmantot tikai kļūdu lapās.

    Piemērs:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%> Netiešais Guru JSP 11 <ķermenis><% int [] num1 = {1,2,3,4};out.println (num1 [5]);%><% = izņēmums%>

Koda skaidrojums:

Kodu rinda 10-12 - tai ir skaitļu masīvs, ti, num1 ar četriem elementiem. Izejā mēs mēģinām izdrukāt piekto masīva elementu no num1, kas nav deklarēts masīvu sarakstā. Tātad tas tiek izmantots, lai iegūtu izņēmuma objektu JSP.

Izeja:

Mēs iegūstam ArrayIndexOfBoundsException masīvā, kur mēs iegūstam num1 masīvu no piektā elementa.