JSP implicit objektumok
โก Okos รถsszefoglalรณ
A JSP implicit objektumok elลre definiรกlt vรกltozรณk, amelyeket a servlet kontรฉner automatikusan lรฉtrehoz az oldal fordรญtรกsa sorรกn, lehetลvรฉ tรฉve a fejlesztลk szรกmรกra, hogy kรถzvetlenรผl az oldalon belรผl hozzรกfรฉrjenek a kimeneti adatfolyamokhoz, kรฉrรฉsekhez, vรกlaszokhoz, munkamenetekhez รฉs alkalmazรกsadatokhoz manuรกlis deklarรกciรณ vagy extra konfigurรกciรณ nรฉlkรผl.

Mi az a JSP Implicit objektum?
- A JSP implicit objektumok a JSP servletre valรณ fordรญtรกsi fรกzisรกban jรถnnek lรฉtre.
- Ezek az objektumok kรถzvetlenรผl felhasznรกlhatรณk a szolgรกltatรกsi metรณdusba tartozรณ szkriptekben.
- Ezeket a tรกrolรณ automatikusan hozza lรฉtre, รฉs objektumok segรญtsรฉgรฉvel รฉrhetลk el.
Hรกny implicit objektum รฉrhetล el a JSP-ben?
A tรกrolรณban 9 tรญpusรบ implicit objektum รฉrhetล el:
- Ki
- Kรฉrjen
- Vรกlasz
- Config
- Alkalmazรกs
- รlรฉs
- PageContext
- oldal
- kivรฉtel
Tanulmรกnyozzuk egyenkรฉnt
1) Ki
- Az Out az egyik implicit objektum, amely az adatokat a pufferbe รญrja, รฉs vรกlaszkรฉnt elkรผldi a kimenetet a kliensnek
- Az Out objektum lehetลvรฉ teszi szรกmunkra, hogy hozzรกfรฉrjรผnk a szervlet kimeneti adatfolyamรกhoz
- Az Out a javax.servlet.jsp.jsp objektuma.Writer osztรกly
- Munka kรถzben szervlet, szรผksรฉgรผnk van nyomtatรณรญrรณ objektumra
Pรฉlda:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP1</title> </head> <body> <% int num1=10;int num2=20; out.println("num1 is " +num1); out.println("num2 is "+num2); %> </body> </html>
A kรณd magyarรกzata:
Code 11-12. sorโ out a kimeneti adatfolyamba tรถrtรฉnล nyomtatรกsra szolgรกl
Amikor vรฉgrehajtjuk a fenti kรณdot, a kรถvetkezล kimenetet kapjuk:
output:
- A kimenetben a num1 รฉs num2 รฉrtรฉkeket kapjuk
2) Kรฉrรฉs
- A kรฉrelem objektum a java.servlet.http.HttpServletRequest pรฉldรกnya, รฉs ez a szolgรกltatรกs metรณdusรกnak egyik argumentuma
- Minden kรฉrelemhez tรกrolรณ hozza lรฉtre.
- A rendszer olyan informรกciรณk kรฉrรฉsรฉre szolgรกl, mint a paramรฉter, a fejlรฉc informรกciรณ, a szerver neve stb.
- A getParameter() segรญtsรฉgรฉvel รฉri el a kรฉrรฉsi paramรฉtert.
Pรฉlda:
Implicit_jsp2.jsp(ลฑrlap, amelyrลl a kรฉrรฉs elkรผldรฉsre kerรผl a guru.jsp cรญmre)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru form JSP2</title> </head> <body> <form action="guru.jsp"> <input type="text" name="username"> <input type="submit" value="submit"> </form> </body> </html>
Guru.jsp (ahol a mลฑveletet vรฉgrehajtjรกk)
A kรณd magyarรกzata:
Code 10-13. sor: Az implicit_jsp2.jsp(form) kรฉrรฉs elkรผldรฉsre kerรผl, รญgy a felhasznรกlรณnรฉv vรกltozรณ feldolgozรกsa รฉs elkรผldรฉse a guru.jsp-nek, ami a JSP mลฑvelete.
Guru.jsp fรกjl
Code 10-11. sor: A kรฉrรฉs feldolgozรกsa a jsp mลฑveletben tรถrtรฉnik, a felhasznรกlรณnรฉv pedig a jsp ลฑrlapbรณl szรกrmazik.
Amikor vรฉgrehajtja a fenti kรณdot, a kรถvetkezล kimenetet kapja
output:
Amikor megรญrja a tesztet, รฉs rรกkattint a kรผldรฉs gombra, akkor a kรถvetkezล kimenetet kapja: โรdvรถzรถljรผk tesztโ.
3) Vรกlasz
- A โResponseโ az osztรกly egy pรฉldรกnya, amely megvalรณsรญtja a HttpServletResponse interfรฉszt
- A tรกrolรณ lรฉtrehozza ezt az objektumot, รฉs paramรฉterkรฉnt รกtadja a _jspservice() metรณdust
- A โvรกlaszobjektumotโ a tรกrolรณ minden kรฉrรฉshez lรฉtrehozza.
- Az รผgyfรฉlnek adhatรณ vรกlaszt kรฉpviseli
- A vรกlasz implicit objektum a tartalom tรญpusรกra, a cookie hozzรกadรกsรกra รฉs a vรกlaszoldalra valรณ รกtirรกnyรญtรกsra szolgรกl
Pรฉlda:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP4</title> </head> <body> <%response.setContentType("text/html"); %> </body> </html>
A kรณd magyarรกzata:
Code 11 vonal: A vรกlaszobjektumban beรกllรญthatjuk a tartalom tรญpusรกt
Itt csak a tartalomtรญpust รกllรญtjuk be a vรกlaszobjektumban. Ezรฉrt erre nincs kimenet.
4) Konfig
- A โConfigโ a java.servlet.servletConfig tรญpusรบ
- A tรกrolรณ hozza lรฉtre minden jsp-oldalhoz
- Az inicializรกlรกsi paramรฉter beszerzรฉsรฉre szolgรกl a web.xml fรกjlban
Pรฉlda:
Web.xml (megadja a nevet รฉs a tรฉrkรฉpet)ping a szervletbลl)
Implicit_jsp5.jsp (a szervletnรฉv รฉrtรฉkรฉnek lekรฉrรฉse)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP5</title> </head> <body> <% String servletName = config.getServletName(); out.println("Servlet Name is " +servletName);%> </body> </html>
A kรณd magyarรกzata:
A web.xml fรกjlban
Code 14-17. sor: A web.xml fรกjlban talรกlhatรณ a tรฉrkรฉpping a szervletek osztรกlyokhoz valรณ hozzรกrendelรฉse.
Implicit_jsp5.jsp
Code 10-11. sor: A JSP-ben lรฉvล servlet nevรฉnek lekรฉrรฉsรฉhez hasznรกlhatjuk a config.getServletName fรกjlt, amely segรญt a servlet nevรฉnek beszerzรฉsรฉben.
Amikor vรฉgrehajtja a fenti kรณdot, a kรถvetkezล kimenetet kapja:
output:
- A szervlet neve โGuruA โservletโ nรฉv szerepel a web.xml fรกjlban
5) alkalmazรกs
- Az alkalmazรกsobjektum (10-es kรณdsor) a javax.servlet.ServletContext pรฉldรกnya, รฉs a kontextusinformรกciรณk รฉs attribรบtumok lekรฉrรฉsรฉre szolgรกl a JSP-ben.
- Alkalmazรกsonkรฉnt egy tรกrolรณ hozza lรฉtre az alkalmazรกsobjektumot, amikor az alkalmazรกs telepรญtve van.
- A Servletcontext objektum olyan metรณdusokat tartalmaz, amelyek a servlet tรกrolรณval valรณ interakciรณhoz hasznรกlhatรณk. Informรกciรณkat talรกlhatunk a szervlet tรกrolรณrรณl
Pรฉlda:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Implicit JSP6</title> </head> <body> <% application.getContextPath(); %> </body> </html>
A kรณd magyarรกzata:
- A fenti kรณdban az application attribรบtum segรญt a JSP oldal kontextusรบtvonalรกnak lekรฉrรฉsรฉben.
6) Munkamenet
- A munkamenet โhttpsessionโ objektumot tart (10-es kรณdsor).
- A Session objektum a munkamenet hatรณkรถrรฉhez tartozรณ attribรบtumok lekรฉrรฉsรฉre, beรกllรญtรกsรกra รฉs eltรกvolรญtรกsรกra szolgรกl, valamint a munkamenet-informรกciรณk lekรฉrรฉsรฉre is hasznรกlhatรณ
Pรฉlda:
Implicit_jsp7 (az attribรบtum be van รกllรญtva)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit JSP</title> </head> <body> <% session.setAttribute("user","GuruJSP"); %> <a href="implicit_jsp8.jsp">Click here to get user name</a> </body> </html>
Implicit_jsp8.jsp (getAttribute)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>implicit Guru JSP8</title> </head> <body> <% String name = (String)session.getAttribute("user"); out.println("User Name is " +name); %> </body> </html>
A kรณd magyarรกzata:
Implicit_jsp7.jsp
Code 11 vonal: beรกllรญtjuk a user attribรบtumot a session vรกltozรณban, รฉs ez az รฉrtรฉk lekรฉrhetล a munkamenetbลl, amelyik jsp-t onnan hรญvjรกk meg (_jsp8.jsp).
Code 12 vonal: Meghรญvunk egy mรกsik jsp on href-t, amelyben megkapjuk a beรกllรญtott user attribรบtum รฉrtรฉkรฉt.
Implicit_jsp8.jsp
Code 11 vonal: A felhasznรกlรณi attribรบtum รฉrtรฉkรฉt a session objektumtรณl kapjuk, รฉs megjelenรญtjรผk ezt az รฉrtรฉket
Amikor vรฉgrehajtja a fenti kรณdot, a kรถvetkezล kimenetet kapja:
Amikor rรกkattint a felhasznรกlรณnรฉv linkjรฉre. A kรถvetkezล kimenetet kapod.
output:
- Amikor rรกkattintunk az implicit_jsp7.jsp-ben megadott linkre, akkor รกtirรกnyรญtunk a mรกsodik jsp oldalra, azaz (_jsp8.jsp) oldalra, รฉs megkapjuk a felhasznรกlรณi attribรบtum session objektumรกnak รฉrtรฉkรฉt (_jsp7.jsp).
7) PageContext
- Ez az objektum oldalkontextus tรญpusรบ.
- Egy adott hatรณkรถr attribรบtumainak lekรฉrรฉsรฉre, beรกllรญtรกsรกra รฉs eltรกvolรญtรกsรกra szolgรกl
A hatรณkรถr 4 tรญpusbรณl รกll:
- oldal
- Kรฉrjen
- รlรฉs
- Alkalmazรกs
Pรฉlda:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP9</title> </head> <body> <% pageContext.setAttribute("student","gurustudent",pageContext.PAGE_SCOPE); String name = (String)pageContext.getAttribute("student"); out.println("student name is " +name); %> </body> </html>
A kรณd magyarรกzata:
Code 11 vonal: az attribรบtumot pageContext objektummal รกllรญtjuk be, รฉs hรกrom paramรฉtere van:
- Kulcs
- รrtรฉk:
- Kรถr
A fenti kรณdban a kulcs a tanulรณ, az รฉrtรฉk pedig a โgurustudentโ, mรญg a hatรณkรถr az oldal hatรณkรถre. Itt a hatรณkรถr "oldal", รฉs csak az oldal hatรณkรถrรฉt hasznรกlja.
Code 12 vonal: Az attribรบtum รฉrtรฉkรฉt a pageContext hasznรกlatรกval kapjuk meg
Amikor vรฉgrehajtja a fenti kรณdot, a kรถvetkezล kimenetet kapja:
output:
- A kimenet a kรถvetkezลt fogja รญrni: โA hallgatรณ neve gurusztโ.
8) Oldal
- Az oldal implicit vรกltozรณja az aktuรกlisan vรฉgrehajtott servlet objektumot tartalmazza a megfelelล jsp-hez.
- Ez az objektum az aktuรกlis jsp-oldalon.
Pรฉlda:
Ebben a pรฉldรกban oldalobjektumot hasznรกlunk az oldalnรฉv lekรฉrรฉsรฉhez a toString metรณdus segรญtsรฉgรฉvel
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP10</title> </head> <body> <% String pageName = page.toString(); out.println("Page Name is " +pageName);%> </body> </html>
A kรณd magyarรกzata:
Code 10-11. sor: Ebben a pรฉldรกban megprรณbรกljuk az oldalobjektum toString() metรณdusรกt hasznรกlni, รฉs megprรณbรกljuk lekรฉrni a JSP oldal karakterlรกncnevรฉt.
Amikor vรฉgrehajtja a kรณdot, a kรถvetkezล kimenetet kapja:
output:
- A kimenet a fenti jsp oldal karakterlรกncรกnak neve
9) Kivรฉtel
- A kivรฉtel a dobhatรณ osztรกly implicit tรกrgya.
- Ezt hasznรกljรกk kivรฉtelkezelรฉs JSP-ben.
- A kivรฉtelobjektum csak hibaoldalakon hasznรกlhatรณ.Pรฉlda:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" isErrorPage="true"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Implicit Guru JSP 11</title> </head> <body> <%int[] num1={1,2,3,4}; out.println(num1[5]);%> <%= exception %> </body> </html>
A kรณd magyarรกzata:
Code 10-12. sor โ Van egy szรกmtรถmbje, azaz a nรฉgy elemลฑ szรกm1. A kimenetben a tรถmb รถtรถdik elemรฉt prรณbรกljuk kiรญrni a szรกm1-bลl, ami nincs deklarรกlva a tรถmblistรกban. Tehรกt a jsp kivรฉtelobjektumรกnak lekรฉrรฉsรฉre hasznรกljรกk.
output:
ArrayIndexOfBoundsException-t kapunk abban a tรถmbben, ahol az รถtรถdik elem num1 tรถmbjรฉt kapjuk.











