JSP kaudsed objektid: täielik õpetus

Lang L: none (table-of-contents):

Anonim

Mis on JSP Implicit objekt?

  • JSP kaudsed objektid luuakse JSP servleti tõlkefaasis.
  • Neid objekte saab otseselt kasutada teenindusmeetodisse kuuluvates skriptides.
  • Konteiner loob need automaatselt ja neile pääseb juurde objektide abil.

Mitu kaudset objekti on JSP-s saadaval?

Konteineris on saadaval 9 tüüpi kaudseid objekte:

  1. välja
  2. taotlus
  3. vastus
  4. konfig
  5. rakendus
  6. seanss
  7. pageContext
  8. lehele
  9. erand

Las uurib ükshaaval

välja

  • Out on üks kaudseid objekte andmete kirjutamiseks puhvrisse ja väljundina kliendile vastuse saatmiseks
  • Objekt Out võimaldab meil pääseda juurde servleti väljundvoole
  • Out on klassi javax.servlet.jsp.jspWriter objekt
  • Servletiga töötamise ajal vajame printeri kirjutaja objekti

Näide:

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

Koodi selgitus:

Koodirida 11-12 - väljundit kasutatakse väljundvoogu printimiseks

Ülaltoodud koodi käivitamisel saame järgmise väljundi:

Väljund:

  • Väljundis saame väärtused num1 ja num2

Taotlus

  • Taotluse objekt on java.servlet.http.HttpServletRequest eksemplar ja see on üks teenusemeetodi argumentidest
  • Selle loob konteiner iga taotluse jaoks.
  • Seda kasutatakse sellise teabe nagu parameeter, päise teave, serveri nimi jne küsimiseks.
  • Taotluse parameetri juurde pääsemiseks kasutab see getParameter ().

Näide:

Implicit_jsp2.jsp (vorm, kust päring saadetakse aadressile guru.jsp)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicit Guru vorm JSP2 

Guru.jsp (kus tegevus toimub)

Koodi selgitus:

Koodirida 10-13: Kui implicit_jsp2.jsp (vorm) saadetakse päring, töödeldakse muutuja kasutajanime ja saadetakse see aadressile guru.jsp, mis on JSP tegevus.

Guru.jsp

Koodirida 10-11: see on toiming jsp, kus päringut töödeldakse, ja kasutajanimi võetakse vormilt jsp.

Ülaltoodud koodi käivitamisel saate järgmise väljundi

Väljund:

Kui kirjutate testi ja klõpsate nupul Esita, saate järgmise väljundi "Welcome Test".

Vastus

  • "Response" on klassi eksemplar, mis rakendab HttpServletResponse liidest
  • Konteiner genereerib selle objekti ja läheb parameetrina meetodile _jspservice ()
  • Konteiner loob iga päringu jaoks "vastuse objekti".
  • See tähistab vastust, mida kliendile saab anda
  • Vastuse kaudset objekti kasutatakse sisutüübi jaoks, küpsise lisamiseks ja vastuslehele ümbersuunamiseks

Näide:

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

Koodi selgitus:

Koodirida 11: vastuse objektis saame määrata sisutüübi

Siin määrame vastuse objektis ainult sisutüübi. Seega pole selle jaoks väljundit.

Konfig

  • "Config" on java.servlet.servletConfig
  • Selle loob konteiner iga jsp-lehe jaoks
  • Seda kasutatakse initsialiseerimisparameetri saamiseks veebisaidil web.xml

Näide:

Web.xml (määrab servleti nime ja kaardistamise)

Implicit_jsp5.jsp (servleti nime väärtuse saamine)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Kaudne Guru JSP5 <% Stringi servletiNimi = config.getServletName ();out.println ("Servleti nimi on" + servleti nimi);%>

Koodi selgitus:

Veebis .xml

Koodirida 14-17: Veebisaidis web.xml on servletite kaardistamine klassidesse.

Implicit_jsp5.jsp

Koodirida 10-11: JSP-s servleti nime saamiseks võime kasutada config.getServletName, mis aitab meil saada servleti nime.

Ülaltoodud koodi käivitamisel saate järgmise väljundi:

Väljund:

  • Servleti nimi on "GuruServlet", kuna see nimi asub veebisaidil web.xml

Rakendus

  • Rakenduse objekt (koodirida 10) on javax.servlet.ServletContext eksemplar ja seda kasutatakse kontekstiteabe ja atribuutide saamiseks JSP-s.
  • Rakenduse objekti loob konteiner üks rakenduse kohta, kui rakendus juurutatakse.
  • Servletkonteksti objekt sisaldab rida meetodeid, mida kasutatakse servleti konteineriga suhtlemiseks. Leiame teavet servleti konteineri kohta

Näide:

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

Koodi selgitus:

  • Ülaltoodud koodis aitab rakenduse atribuut saada JSP-lehe kontekstiteed.

Seanss

  • Seanss hoiab objekti „httpsession” (koodirida 10).
  • Sessiooni objekti kasutatakse seansi ulatuse atribuutide hankimiseks, määramiseks ja eemaldamiseks ning seda kasutatakse ka seansi teabe hankimiseks

Näide:

Implicit_jsp7 (atribuut on määratud)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Kaudne JSP <% session.setAttribute ("kasutaja", "GuruJSP"); %> Kasutajanime saamiseks klõpsake siin 

Implicit_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> kaudne Guru JSP8 <% Stringi nimi = (String) session.getAttribute ("kasutaja");out.println ("Kasutajanimi on" + nimi);%>

Koodi selgitus:

Implicit_jsp7.jsp

Koodirida 11: määrame atribuudi user seansi muutujasse ja selle väärtuse saab tuua seansilt, olenevalt sellest, kumb jsp kutsutakse (_jsp8.jsp).

Koodirida 12: kutsume hrefil veel ühte jsp-i, milles saame atribuudi user jaoks määratud väärtuse.

Implicit_jsp8.jsp

Koodirida 11: Saame kasutaja atribuudi väärtuse seansiobjektilt ja kuvame selle väärtuse

Ülaltoodud koodi käivitamisel saate järgmise väljundi:

Kui klõpsate kasutajanime lingil. Saad järgmise väljundi.

Väljund:

  • Kui klõpsame lingil implicit_jsp7.jsp, siis suunatakse meid teisele jsp-lehele, st (_jsp8.jsp) lehele ja saame väärtuse kasutaja atribuudi seansiobjektilt (_jsp7.jsp).

pageKontekst:

  • See objekt on tüüpi pagekontekst.
  • Seda kasutatakse atribuutide hankimiseks, määramiseks ja eemaldamiseks konkreetsest ulatusest

Reguleerimisala on nelja tüüpi:

  • Leht
  • Taotlus
  • Seanss
  • Rakendus

Näide:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Kaudne Guru JSP9 <% pageContext.setAttribute ("õpilane", "gurustudent", pageContext.PAGE_SCOPE);Stringi nimi = (String) pageContext.getAttribute ("õpilane");out.println ("õpilase nimi on" + nimi);%>

Koodi selgitus:

Koodirida 11: määrame atribuudi pageContext objekti abil ja sellel on kolm parameetrit:

  • Võti
  • Väärtus
  • Reguleerimisala

Ülaltoodud koodis on võtmeks õpilane ja väärtuseks "gurustudent", samas kui ulatus on lehe ulatus. Siin on ulatus "leht" ja see saab kasutada ainult lehe ulatust.

Koodirida 12: saame atribuudi väärtuse leheContext abil

Ülaltoodud koodi käivitamisel saate järgmise väljundi:

Väljund:

  • Väljund trükib "õpilase nimi on hoolikas".

Leht

  • Lehe vaikimisi muutuja hoiab parajasti täidetud servleti objekti vastava jsp-i jaoks.
  • Toimib praeguse jsp-lehe selle objektina.

Näide:

Selles näites kasutame lehe objekti toStringi meetodil lehe nime saamiseks

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Kaudne Guru JSP10 <% String pageName = page.toString ();out.println ("Lehe nimi on" + lehe nimi);%>

Koodi selgitus:

Koodirida 10-11: Selles näites proovime kasutada lehe objekti meetodit toString () ja proovime saada JSP-lehe stringinime.

Koodi käivitamisel saate järgmise väljundi:

Väljund:

  • Väljund on stringi nimi ülaltoodud jsp-lehel

Erand

  • Erand on heidetava klassi kaudne objekt.
  • Seda kasutatakse erandite käsitlemiseks JSP-s.
  • Erandobjekti saab kasutada ainult vealehtedel.

    Näide:

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

Koodi selgitus:

Koodirida 10-12 - sellel on arvude massiiv, st nelja elemendiga num1. Väljundis proovime printida massiivi viienda elemendi num1-st, mida massiivi loendis pole deklareeritud. Nii et seda kasutatakse jsp erandobjekti saamiseks.

Väljund:

Saame massiivi ArrayIndexOfBoundsException, kus saame viienda elemendi massiivi num1.