JSP implisitte objekter
Hva er JSP implisitt objekt?
- JSP implisitte objekter opprettes under oversettelsesfasen av JSP til servleten.
- Disse objektene kan brukes direkte i skriftletter som gรฅr i tjenestemetoden.
- De opprettes av containeren automatisk, og de kan nรฅs ved hjelp av objekter.
Hvor mange implisitte objekter er tilgjengelige i JSP?
Det er 9 typer implisitte objekter tilgjengelig i beholderen:
- Out
- Be
- Respons
- Config
- Sรธknad
- Session
- Sidekontekst
- Side
- Unntak
La oss studere en etter en
1) Ut
- Ut er et av de implisitte objektene for รฅ skrive dataene til bufferen og sende utdata til klienten som svar
- Out-objektet lar oss fรฅ tilgang til servletens utdatastrรธm
- Out er gjenstand for javax.servlet.jsp.jspWriter-klassen
- Mens du jobber med servlett, vi trenger printwriter-objekt
Eksempel:
<%@ 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>
Forklaring av koden:
Kodelinje 11-12โ ut brukes til รฅ skrive ut til utdatastrรธm
Nรฅr vi kjรธrer koden ovenfor, fรฅr vi fรธlgende utgang:
Utgang:
- I utgangen fรฅr vi verdiene num1 og num2
2) Forespรธrsel
- Forespรธrselsobjektet er en forekomst av java.servlet.http.HttpServletRequest, og det er et av argumentene for tjenestemetoden
- Det vil bli opprettet av container for hver forespรธrsel.
- Den vil bli brukt til รฅ be om informasjon som parameter, overskriftsinformasjon, servernavn osv.
- Den bruker getParameter() for รฅ fรฅ tilgang til forespรธrselsparameteren.
Eksempel:
Implicit_jsp2.jsp(skjema som forespรธrselen sendes fra til guru.jsp)
<%@ 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 (hvor handlingen utfรธres)
Forklaring av kode:
Kodelinje 10-13 : I implicit_jsp2.jsp(form) sendes forespรธrselen, derfor blir variabelen brukernavn behandlet og sendt til guru.jsp som er handlingen til JSP.
Guru.jsp
Kodelinje 10-11: Det er handling jsp der forespรธrselen behandles, og brukernavn er hentet fra skjemaet jsp.
Nรฅr du utfรธrer koden ovenfor, fรฅr du fรธlgende utgang
Utgang:
Nรฅr du skriver test og klikker pรฅ send inn-knappen, fรฅr du fรธlgende utgang "Velkomsttest."
3) Respons
- "Response" er en forekomst av klasse som implementerer HttpServletResponse-grensesnittet
- Container genererer dette objektet og sender til _jspservice()-metoden som parameter
- "Responsobjekt" vil bli opprettet av beholderen for hver forespรธrsel.
- Det representerer responsen som kan gis til klienten
- Det implisitte responsobjektet brukes til innholdstype, legge til informasjonskapsel og omdirigere til svarsiden
Eksempel:
<%@ 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>
Forklaring av koden:
Kodelinje 11: I responsobjektet kan vi sette innholdstypen
Her setter vi kun innholdstypen i responsobjektet. Derfor er det ingen utgang for dette.
4) Konfig
- "Config" er av typen java.servlet.servletConfig
- Den lages av beholderen for hver jsp-side
- Den brukes til รฅ hente initialiseringsparameteren i web.xml
Eksempel:
Web.xml (spesifiserer navnet og tilordningen av servleten)
Implicit_jsp5.jsp (henter verdien av servletnavnet)
<%@ 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>
Forklaring av koden:
I web.xml
Kodelinje 14-17: I web.xml har vi mapping av servlets til klassene.
Implisitt_jsp5.jsp
Kodelinje 10-11: For รฅ fรฅ navnet pรฅ servleten i JSP kan vi bruke config.getServletName, som vil hjelpe oss รฅ fรฅ navnet pรฅ servleten.
Nรฅr du kjรธrer koden ovenfor fรฅr du fรธlgende utgang:
Utgang:
- Servlet-navnet er "GuruServlet" ettersom navnet finnes i web.xml
5) Sรธknad
- Applikasjonsobjekt (kodelinje 10) er en forekomst av javax.servlet.ServletContext og den brukes til รฅ hente kontekstinformasjonen og attributtene i JSP.
- Applikasjonsobjekt opprettes av container รฉn per applikasjon, nรฅr applikasjonen blir distribuert.
- Servletcontext-objektet inneholder et sett med metoder som brukes til รฅ samhandle med servlet-beholderen. Vi kan finne informasjon om servlet-beholderen
Eksempel:
<%@ 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>
Forklaring av koden:
- I koden ovenfor hjelper applikasjonsattributtet med รฅ fรฅ kontekstbanen til JSP-siden.
6) Sesjon
- Sesjonen inneholder "httpsession"-objektet (kodelinje 10).
- Sesjonsobjekt brukes til รฅ hente, angi og fjerne attributter til sesjonsomfang og brukes ogsรฅ til รฅ fรฅ รธktinformasjon
Eksempel:
Implicit_jsp7(attributtet er satt)
<%@ 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>
Forklaring av koden:
Implisitt_jsp7.jsp
Kodelinje 11: vi setter attributtet bruker i sesjonsvariabelen, og den verdien kan hentes fra sesjonen i hvilken som helst jsp kalles fra den (_jsp8.jsp).
Kodelinje 12: Vi kaller en annen jsp pรฅ href der vi fรฅr verdien for attributt bruker som er satt.
Implisitt_jsp8.jsp
Kodelinje 11: Vi henter verdien av brukerattributtet fra sesjonsobjektet og viser den verdien
Nรฅr du kjรธrer koden ovenfor, fรฅr du fรธlgende utgang:
Nรฅr du klikker pรฅ lenken for brukernavnet. Du vil fรฅ fรธlgende utgang.
Utgang:
- Nรฅr vi klikker pรฅ lenken gitt i implicit_jsp7.jsp, blir vi omdirigert til andre jsp-side, dvs. (_jsp8.jsp)-siden og vi fรฅr verdien fra sesjonsobjektet til brukerattributtet (_jsp7.jsp).
7) Sidekontekst
- Dette objektet er av typen sidekontekst.
- Den brukes til รฅ hente, angi og fjerne attributtene fra et bestemt omfang
Omfang er av 4 typer:
- Side
- Be
- Session
- Sรธknad
Eksempel:
<%@ 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>
Forklaring av koden:
Kodelinje 11: vi setter attributtet ved รฅ bruke pageContext-objektet, og det har tre parametere:
- nรธkkel
- Verdi
- Omfang
I koden ovenfor er nรธkkelen student og verdien er "gurustudent" mens omfanget er sideomfanget. Her er omfanget "side", og det kan kun brukes ved รฅ bruke sideomfang.
Kodelinje 12: Vi fรฅr verdien av attributtet ved รฅ bruke pageContext
Nรฅr du kjรธrer koden ovenfor, fรฅr du fรธlgende utgang:
Utgang:
- Utdataene vil skrive ut "studentnavn er gurustudent".
8) Side
- Side implisitt variabel inneholder det gjeldende utfรธrte servlet-objektet for den tilsvarende jsp.
- Fungerer som dette objektet for gjeldende jsp-side.
Eksempel:
I dette eksemplet bruker vi sideobjekt for รฅ fรฅ sidenavnet ved รฅ bruke toString-metoden
<%@ 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>
Forklaring av koden:
Kodelinje 10-11: I dette eksemplet prรธver vi รฅ bruke metoden toString() til sideobjektet og prรธver รฅ fรฅ strengnavnet til JSP-siden.
Nรฅr du kjรธrer koden fรฅr du fรธlgende utgang:
Utgang:
- Utdata er strengnavnet pรฅ jsp-siden ovenfor
9) Unntak
- Unntak er det implisitte objektet til den kastbare klassen.
- Den brukes til unntakshรฅndtering i JSP.
- Unntaksobjektet kan kun brukes pรฅ feilsider.Eksempel:
<%@ 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>
Forklaring av koden:
Kodelinje 10-12 โ Den har en rekke tall, dvs. num1 med fire elementer. I utgangen prรธver vi รฅ skrive ut det femte elementet i matrisen fra num1, som ikke er deklarert i matriselisten. Sรฅ det brukes til รฅ fรฅ unntaksobjekt av jsp.
Utgang:
Vi fรฅr ArrayIndexOfBoundsException i arrayen der vi fรฅr en num1 array av det femte elementet.











