Što je JSP implicitni objekt?
- JSP implicitni objekti kreiraju se tijekom faze prevođenja JSP-a na servlet.
- Ti se objekti mogu izravno koristiti u skriptama koje idu u metodu usluge.
- Spremnik ih stvara automatski i može im se pristupiti pomoću objekata.
Koliko je implicitnih objekata dostupno u JSP-u?
U spremniku je dostupno 9 vrsta implicitnih objekata:
- van
- zahtjev
- odgovor
- konfiguracija
- primjena
- sjednica
- pageContext
- stranica
- iznimka
Proučavajmo jedan po jedan
van
- Out je jedan od implicitnih objekata za pisanje podataka u međuspremnik i slanje rezultata klijentu kao odgovor
- Out objekt omogućuje nam pristup izlaznom toku servleta
- Out je objekt klase javax.servlet.jsp.jspWriter
- Dok radimo s servletom, trebamo objekt pisača
Primjer:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Implicitni guru JSP1 <% int num1 = 10; int num2 = 20;out.println ("num1 je" + num1);out.println ("num2 je" + num2);%>
Objašnjenje koda:
Kodna linija 11-12 - out koristi se za ispis u izlazni tok
Kada izvršimo gornji kod, dobit ćemo sljedeći izlaz:
Izlaz:
- U izlazu dobivamo vrijednosti num1 i num2
Zahtjev
- Objekt zahtjeva instanca je java.servlet.http.HttpServletRequest i jedan je od argumenata metode usluge
- Stvorit će se spremnikom za svaki zahtjev.
- Koristit će se za traženje podataka poput parametara, podataka zaglavlja, naziva poslužitelja itd.
- Koristi getParameter () za pristup parametru zahtjeva.
Primjer:
Implicit_jsp2.jsp (obrazac iz kojeg se zahtjev šalje guru.jsp)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Implicitni guru obrazac JSP2
Guru.jsp (gdje se poduzima radnja)
Objašnjenje koda:
Redak koda 10-13: U implicit_jsp2.jsp (obrazac) šalje se zahtjev, stoga se varijabla korisničko ime obrađuje i šalje guru.jsp što je akcija JSP-a.
Guru.jsp
Kodni redak 10-11: Radi se o akciji jsp gdje se zahtjev obrađuje, a korisničko ime preuzima iz obrasca jsp.
Kada izvršite gornji kod, dobit ćete sljedeći izlaz
Izlaz:
Kada napišete test i kliknete na gumb za slanje, dobit ćete sljedeći izlaz "Test dobrodošlice".
Odgovor
- "Odgovor" je instanca klase koja implementira sučelje HttpServletResponse
- Spremnik generira ovaj objekt i kao parametar prelazi na metodu _jspservice ()
- Spremnik će stvoriti "objekt odgovora" za svaki zahtjev.
- Predstavlja odgovor koji se može dati klijentu
- Implicitni objekt odgovora koristi se za vrstu sadržaja, dodavanje kolačića i preusmjeravanje na stranicu odgovora
Primjer:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Implicitni guru JSP4 <% response.setContentType ("text / html"); %>
Objašnjenje koda:
Linija koda 11: U objektu odgovora možemo postaviti vrstu sadržaja
Ovdje postavljamo samo vrstu sadržaja u objektu odgovora. Stoga za to nema rezultata.
Config
- "Config" je tipa java.servlet.servletConfig
- Stvara ga spremnik za svaku jsp stranicu
- Koristi se za dobivanje parametra inicijalizacije u web.xml
Primjer:
Web.xml (navodi naziv i mapiranje servleta)
Implicit_jsp5.jsp (dobivanje vrijednosti naziva servleta)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Implicitni guru JSP5 <% Niz servletName = config.getServletName ();out.println ("Ime servleta je" + Ime servleta);%>
Objašnjenje koda:
U web.xml
Linija koda 14-17: U web.xml imamo mapiranje servleta u klase.
Implicit_jsp5.jsp
Redak koda 10-11: Da bismo dobili ime servleta u JSP-u, možemo koristiti config.getServletName, koji će nam pomoći da dobijemo ime servleta.
Kada izvršite gornji kod, dobit ćete sljedeći izlaz:
Izlaz:
- Naziv servleta je "GuruServlet" jer je ime prisutno u web.xml
Primjena
- Objekt aplikacije (redak koda 10) instanca je javax.servlet.ServletContext i koristi se za dobivanje informacija o kontekstu i atributa u JSP-u.
- Objekt aplikacije kreira se spremnikom jedan po aplikaciji, kada se aplikacija postavi u upotrebu.
- Objekt Servletcontext sadrži skup metoda koje se koriste za interakciju sa spremnikom servleta. Možemo pronaći informacije o spremniku servleta
Primjer:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Guru implicitni JSP6 <% application.getContextPath (); %>
Objašnjenje koda:
- U gore navedenom kodu atribut aplikacije pomaže dobiti kontekst put JSP stranice.
Sjednica
- Sesija sadrži objekt "httpsession" (redak koda 10).
- Objekt sesije koristi se za dobivanje, postavljanje i uklanjanje atributa u opseg sesije, a koristi se i za dobivanje informacija o sesiji
Primjer:
Implicit_jsp7 (postavljen je atribut)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Implicitni JSP <% session.setAttribute ("korisnik", "GuruJSP"); %> Kliknite ovdje da biste dobili korisničko ime
Implicit_jsp8.jsp (getAttribute)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>implicitni Guru JSP8 <% String name = (String) session.getAttribute ("user");out.println ("Korisničko ime je" + ime);%>
Objašnjenje koda:
Implicit_jsp7.jsp
Linija koda 11: postavljamo korisnika atributa u varijablu sesije, a ta se vrijednost može dohvatiti iz sesije u zavisnosti od toga koji se jsp od nje poziva (_jsp8.jsp).
Redak koda 12: Pozivamo drugi jsp na href u kojem ćemo dobiti vrijednost za korisnika atributa koja je postavljena.
Implicit_jsp8.jsp
Linija koda 11: Dobivamo vrijednost korisničkog atributa iz objekta sesije i prikazujemo tu vrijednost
Kada izvršite gornji kod, dobit ćete sljedeći izlaz:
Kada kliknete na vezu za korisničko ime. Dobit ćete sljedeći izlaz.
Izlaz:
- Kada kliknemo na vezu navedenu u implicit_jsp7.jsp, tada smo preusmjereni na drugu jsp stranicu, tj. (_Jsp8.jsp) stranicu i dobivamo vrijednost iz objekta sesije korisničkog atributa (_jsp7.jsp).
pageContext:
- Ovaj je objekt tipa pagecontext.
- Koristi se za dobivanje, postavljanje i uklanjanje atributa iz određenog opsega
Opsezi su 4 vrste:
- Stranica
- Zahtjev
- Sjednica
- Primjena
Primjer:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Implicitni Guru JSP9 <% pageContext.setAttribute ("student", "gurustudent", pageContext.PAGE_SCOPE);Naziv niza = (Niz) pageContext.getAttribute ("student");out.println ("ime učenika je" + ime);%>
Objašnjenje koda:
Linija koda 11: atribut postavljamo pomoću objekta pageContext i on ima tri parametra:
- Ključ
- Vrijednost
- Opseg
U gornjem kodu ključ je student, a vrijednost je "gurustudent", dok je opseg opseg stranice. Ovdje je opseg "stranica" i može se dobiti samo pomoću opsega stranice.
Redak koda 12: Vrijednost atributa dobivamo pomoću pageContext
Kada izvršite gornji kod, dobit ćete sljedeći izlaz:
Izlaz:
- Izlaz će ispisati "ime studenta je gurustudent".
Stranica
- U implicitnoj varijabli stranice nalazi se trenutno izvršeni objekt servleta za odgovarajući jsp.
- Djeluje kao ovaj objekt za trenutnu jsp stranicu.
Primjer:
U ovom primjeru koristimo objekt stranice da bismo dobili naziv stranice metodom toString
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Implicitni Guru JSP10 <% String pageName = page.toString ();out.println ("Ime stranice je" + ime stranice);%>
Objašnjenje koda:
Redak koda 10-11: U ovom primjeru pokušavamo koristiti metodu toString () objekta stranice i pokušavamo dobiti naziv niza JSP stranice.
Kada izvršite kod, dobit ćete sljedeći izlaz:
Izlaz:
- Izlaz je naziv niza iznad jsp stranice
Iznimka
- Iznimka je implicitni objekt klase koja se može baciti.
- Koristi se za rukovanje iznimkama u JSP-u.
- Objekt iznimke može se koristiti samo na stranicama s pogreškama.
Primjer:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%>Implicitni Guru JSP 11 <% int [] num1 = {1,2,3,4};out.println (num1 [5]);%><% = iznimka%>
Objašnjenje koda:
Kodna linija 10-12 - ima niz brojeva, tj. Num1 s četiri elementa. U izlazu pokušavamo ispisati peti element niza iz num1, koji nije deklariran na popisu polja. Dakle, koristi se za dobivanje objekta iznimke jsp-a.
Izlaz:
Dobivamo ArrayIndexOfBoundsException u polju gdje dobivamo num1 niz petog elementa.