JSP implicit Objects: Užbaigti pamoką

Turinys:

Anonim

Kas yra „JSP implicit“ objektas?

  • JSP implicitiniai objektai yra sukurti per JSP vertimo į servletą etapą.
  • Šiuos objektus galima tiesiogiai naudoti fragmentuose, kurie naudojami aptarnavimo metodu.
  • Juos konteineris sukuria automatiškai, ir juos galima pasiekti naudojant objektus.

Kiek numanomų objektų yra JSP?

Sudėtiniame rodinyje yra 9 numanomų objektų tipai:

  1. išėjo
  2. prašymą
  3. atsakymą
  4. konfigūruoti
  5. taikymas
  6. sesija
  7. puslapisKontekstas
  8. puslapis
  9. išimtis

Leiskite mokytis po vieną

išėjo

  • „Out“ yra vienas iš numanomų objektų, norint įrašyti duomenis į buferį ir siųsti atsakymą klientui
  • Išvesties objektas leidžia mums pasiekti servleto išvesties srautą
  • „Out“ yra „javax.servlet.jsp.jspWriter“ klasės objektas
  • Dirbant su servletu, mums reikia spausdintuvo objekto

Pavyzdys:

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

Kodo paaiškinimas:

Kodo eilutė 11-12 - out naudojama spausdinti į išvesties srautą

Vykdydami pirmiau nurodytą kodą, gauname šį išvestį:

Išvestis:

  • Išvestyje gauname num1 ir num2 reikšmes

Prašymas

  • Užklausos objektas yra java.servlet.http.HttpServletRequest egzempliorius ir tai yra vienas iš aptarnavimo metodo argumentų
  • Kiekvieną užklausą jis sukurs konteineris.
  • Jis bus naudojamas prašant informacijos, tokios kaip parametras, antraštės informacija, serverio pavadinimas ir kt.
  • Norėdami pasiekti užklausos parametrą, jis naudoja „getParameter“ ().

Pavyzdys:

Implicit_jsp2.jsp (forma, iš kurios užklausa siunčiama guru.jsp)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Numanoma „Guru“ forma JSP2 

Guru.jsp (kur atliekamas veiksmas)

Kodo paaiškinimas:

Kodo eilutė 10-13: Kai implicit_jsp2.jsp (forma) siunčiama užklausa, kintamasis vartotojo vardas yra apdorojamas ir siunčiamas guru.jsp, kuris yra JSP veiksmas.

Guru.jsp

Kodo eilutė 10-11: tai veiksmas jsp, kuriame apdorojama užklausa, o vartotojo vardas paimamas iš formos jsp.

Vykdydami pirmiau nurodytą kodą, gausite šią išvestį

Išvestis:

Kai rašote testą ir spustelėsite mygtuką „Pateikti“, gausite tokią išvestį „Welcome Test“.

Atsakymas

  • „Atsakymas“ yra klasės egzempliorius, įgyvendinantis „HttpServletResponse“ sąsają
  • Konteineris sukuria šį objektą ir kaip parametrą pereina į _jspservice () metodą
  • „Atsakymo objektas“ bus sukurtas konteinerio kiekvienai užklausai.
  • Tai reiškia atsakymą, kurį galima pateikti klientui
  • Netiesioginis atsakymo objektas naudojamas turinio tipui, slapuko pridėjimui ir peradresavimui į atsakymo puslapį

Pavyzdys:

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

Kodo paaiškinimas:

11 kodo eilutė: atsakymo objekte galime nustatyti turinio tipą

Čia atsakymo objekte nustatome tik turinio tipą. Vadinasi, tam nėra išvesties.

Konfig

  • „Config“ yra java.servlet.servletConfig tipo
  • Jį sukuria kiekvieno jsp puslapio talpykla
  • Jis naudojamas norint gauti inicializavimo parametrą „web.xml“

Pavyzdys:

Web.xml (nurodo servleto pavadinimą ir susiejimą)

Implicit_jsp5.jsp (gaunamas servleto pavadinimo vertė)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Numanomas „Guru JSP5“ <% String servletName = config.getServletName ();out.println ("Servleto pavadinimas yra" + servletletName);%>

Kodo paaiškinimas:

Žiniatinklyje.xml

Kodo eilutė 14-17: Web.xml turime servletų susiejimą su klasėmis.

Implicit_jsp5.jsp

Kodo eilutė 10-11: Norėdami gauti servleto pavadinimą JSP, galime naudoti config.getServletName, kuris padės mums gauti servleto pavadinimą.

Vykdydami pirmiau nurodytą kodą gausite šį išvestį:

Išvestis:

  • Servleto vardas yra „GuruServlet“, nes vardas yra žiniatinklyje web.xml

Taikymas

  • Programos objektas (10 kodo eilutė) yra javax.servlet.ServletContext egzempliorius ir naudojamas norint gauti konteksto informaciją ir atributus JSP.
  • Programos objektą sukuria konteineris po vieną kiekvienai programai, kai programa diegiama.
  • „Servletcontext“ objekte yra metodų rinkinys, naudojamas sąveikauti su servleto konteineriu. Mes galime rasti informacijos apie servleto konteinerį

Pavyzdys:

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

Kodo paaiškinimas:

  • Pirmiau pateiktame kode programos atributas padeda gauti JSP puslapio konteksto kelią.

Sesija

  • Sesijoje yra objektas „httpsession“ (10 kodo eilutė).
  • Sesijos objektas naudojamas seanso apimties atributams gauti, nustatyti ir pašalinti, taip pat naudojamas seanso informacijai gauti

Pavyzdys:

Implicit_jsp7 (atributas nustatytas)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Numanomas JSP <% session.setAttribute ("vartotojas", "GuruJSP"); %> Spustelėkite čia, jei norite gauti vartotojo vardą 

„Implicit_jsp8.jsp“ („getAttribute“)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> implicit Guru JSP8 <% String name = (String) session.getAttribute ("vartotojas");out.println ("Vartotojo vardas yra" + vardas);%>

Kodo paaiškinimas:

Implicit_jsp7.jsp

11 kodo eilutė: nustatome atributo vartotoją seanso kintamajame, ir tą vertę galima gauti iš seanso, atsižvelgiant į tai, kuris jsp yra iškviečiamas iš to (_jsp8.jsp).

12 kodo eilutė: Mes kviečiame dar vieną „jsp“ į „href“, kuriame gausime nustatytą atributo vartotojo vertę.

Implicit_jsp8.jsp

11 kodo eilutė: Vartotojo atributo vertę gauname iš seanso objekto ir rodome tą vertę

Vykdydami pirmiau nurodytą kodą gausite šį išvestį:

Kai spustelėsite vartotojo vardo nuorodą. Gausite tokią išvestį.

Išvestis:

  • Kai spustelėsime nuorodą, pateiktą implicit_jsp7.jsp, tada mes būsime nukreipti į antrąjį jsp puslapį, ty (_jsp8.jsp) puslapį ir gausime vartotojo atributo (_jsp7.jsp) seanso objekto vertę.

puslapisKontekstas:

  • Šis objektas yra pagekonteksto tipo.
  • Jis naudojamas norint gauti, nustatyti ir pašalinti atributus iš tam tikros srities

Taikymo sritis yra 4 tipai:

  • Puslapis
  • Prašymas
  • Sesija
  • Taikymas

Pavyzdys:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Numanomas „Guru JSP9“ <% pageContext.setAttribute ("studentas", "gurustudent", pageContext.PAGE_SCOPE);Stygos pavadinimas = (String) pageContext.getAttribute ("studentas");out.println („studento vardas yra“ + vardas);%>

Kodo paaiškinimas:

11 kodo eilutė: atributą nustatome naudodami „pageContext“ objektą, ir jis turi tris parametrus:

  • Raktas
  • Vertė
  • Taikymo sritis

Ankstesniame kode raktas yra studentas, o vertė - „gurustudent“, o apimtis - puslapio apimtis. Čia taikymo sritis yra „puslapis“ ir ją galima naudoti tik naudojant puslapio apimtį.

12 kodo eilutė: Atributo vertę gauname naudodami „pageContext“

Vykdydami pirmiau nurodytą kodą gausite šį išvestį:

Išvestis:

  • Išvestyje bus spausdinama „studento vardas yra nepaprastas“.

Puslapis

  • Netiesioginis puslapio kintamasis palaiko šiuo metu vykdomą servleto objektą atitinkamam jsp.
  • Veikia kaip šis objektas dabartiniam „JSP“ puslapiui.

Pavyzdys:

Šiame pavyzdyje mes naudojame puslapio objektą, norėdami gauti puslapio pavadinimą naudodami „toString“ metodą

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Numanomas „Guru JSP10“ <% String pageName = page.toString ();out.println („Puslapio pavadinimas yra“ + puslapio pavadinimas);%>

Kodo paaiškinimas:

Kodo eilutė 10-11: Šiame pavyzdyje bandome naudoti puslapio objekto metodą toString () ir bandome gauti JSP puslapio eilutės pavadinimą.

Vykdydami kodą gausite šią išvestį:

Išvestis:

  • Išvestis yra viršuje esančio virš JSP puslapio eilutės pavadinimas

Išimtis

  • Išimtis yra numanomas metamos klasės objektas.
  • Jis naudojamas išimčių tvarkymui JSP.
  • Išimties objektas gali būti naudojamas tik klaidos puslapiuose.

    Pavyzdys:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%> Numanomas „Guru JSP 11“ <% int [] num1 = {1,2,3,4};out.println (skaičius1 [5]);%><% = išimtis%>

Kodo paaiškinimas:

Kodo eilutė 10-12 - ji turi skaičių masyvą, ty num1 su keturiais elementais. Išvestyje bandome atspausdinti penktąjį masyvo elementą iš num1, kuris nėra deklaruotas masyvų sąraše. Taigi jis naudojamas norint gauti jsp išimties objektą.

Išvestis:

Gauname ArrayIndexOfBoundsException masyve, kur gauname penkto elemento masyvą num1.