JSP implicita objekt
Vad är JSP implicit objekt?
- JSP implicita objekt skapas under översättningsfasen av JSP till servleten.
- Dessa objekt kan direkt användas i skript som går i servicemetoden.
- De skapas av behållaren automatiskt och de kan nås med hjälp av objekt.
Hur många implicita objekt är tillgängliga i JSP?
Det finns 9 typer av implicita objekt tillgängliga i behållaren:
- Out
- FÖRFRÅGAN
- Svar
- Konfig
- Ansökan
- Session Test
- Sidkontext
- Sida
- undantag
Låt oss studera en efter en
1) Ut
- Ut är ett av de implicita objekten för att skriva data till bufferten och skicka utdata till klienten som svar
- Out-objektet låter oss komma åt servletens utdataström
- Out är föremål för javax.servlet.jsp.jspWriter-klassen
- När du arbetar med servlett, vi behöver skrivarobjekt
Exempelvis:
<%@ 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>
Förklaring av koden:
Kodrad 11-12– ut används för att skriva ut till utdataström
När vi kör ovanstående kod får vi följande utdata:
Produktion:
- I utgången får vi värdena för num1 och num2
2) Begäran
- Begäranobjektet är en instans av java.servlet.http.HttpServletRequest och det är ett av argumenten för tjänstemetoden
- Det kommer att skapas av behållare för varje begäran.
- Den kommer att användas för att begära information som parameter, rubrikinformation, servernamn, etc.
- Den använder getParameter() för att komma åt parametern begäran.
Exempelvis:
Implicit_jsp2.jsp(formulär från vilket förfrågan skickas till 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 (där åtgärden vidtas)
Förklaring av kod:
Kodrad 10-13 : I implicit_jsp2.jsp(form) skickas begäran, därför bearbetas variabeln användarnamn och skickas till guru.jsp vilket är JSP:s åtgärd.
Guru.jsp
Kodrad 10-11: Det är action jsp där begäran behandlas, och användarnamnet är hämtat från formuläret jsp.
När du kör ovanstående kod får du följande utdata
Produktion:
När du skriver test och klickar på skicka-knappen får du följande utdata "Välkomsttest."
3) Svar
- "Response" är en instans av klass som implementerar HttpServletResponse-gränssnittet
- Container genererar detta objekt och skickar till metoden _jspservice() som parameter
- "Svarsobjekt" kommer att skapas av behållaren för varje begäran.
- Det representerar svaret som kan ges till klienten
- Det implicita responsobjektet används för att innehållstyp, lägga till cookie och omdirigera till svarssida
Exempelvis:
<%@ 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>
Förklaring av koden:
Kodrad 11: I responsobjektet kan vi ställa in innehållstypen
Här ställer vi bara in innehållstypen i responsobjektet. Därför finns det ingen utgång för detta.
4) Konfig
- "Config" är av typen java.servlet.servletConfig
- Den skapas av behållaren för varje jsp-sida
- Den används för att hämta initialiseringsparametern i web.xml
Exempelvis:
Web.xml (anger servletens namn och mappning)
Implicit_jsp5.jsp (hämtar värdet av servletnamn)
<%@ 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>
Förklaring av koden:
I web.xml
Kodrad 14-17: I web.xml har vi mappning av servlets till klasserna.
Implicit_jsp5.jsp
Kodrad 10-11: För att få namnet på servleten i JSP kan vi använda config.getServletName, vilket hjälper oss att få namnet på servleten.
När du kör ovanstående kod får du följande utdata:
Produktion:
- Servlets namn är "GuruServlet" eftersom namnet finns i web.xml
5) Ansökan
- Application object (kodrad 10) är en instans av javax.servlet.ServletContext och det används för att hämta kontextinformationen och attributen i JSP.
- Applikationsobjekt skapas av behållare en per applikation, när applikationen distribueras.
- Servletcontext-objektet innehåller en uppsättning metoder som används för att interagera med servletbehållaren. Vi kan hitta information om servletbehållaren
Exempelvis:
<%@ 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>
Förklaring av koden:
- I ovanstående kod hjälper applikationsattributet till att få kontextsökvägen till JSP-sidan.
6) Session
- Sessionen innehåller objektet "httpsession" (kodrad 10).
- Sessionsobjekt används för att hämta, ställa in och ta bort attribut till sessionsomfång och används även för att hämta sessionsinformation
Exempelvis:
Implicit_jsp7(attributet är 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>
Förklaring av koden:
Implicit_jsp7.jsp
Kodrad 11: vi ställer in attributet användare i sessionsvariabeln, och det värdet kan hämtas från sessionen i vilken jsp som helst anropas från den (_jsp8.jsp).
Kodrad 12: Vi anropar en annan jsp på href där vi kommer att få värdet för attribut användare som är satt.
Implicit_jsp8.jsp
Kodrad 11: Vi hämtar värdet av användarattributet från sessionsobjektet och visar det värdet
När du kör ovanstående kod får du följande utdata:
När du klickar på länken för användarnamnet. Du kommer att få följande utdata.
Produktion:
- När vi klickar på länken som ges i implicit_jsp7.jsp omdirigeras vi till andra jsp-sidan, dvs (_jsp8.jsp) sida och vi får värdet från sessionsobjektet för användarattributet (_jsp7.jsp).
7) Sidkontext
- Detta objekt är av typen sidkontext.
- Den används för att hämta, ställa in och ta bort attributen från ett visst omfång
Omfattningarna är av 4 typer:
- Sida
- FÖRFRÅGAN
- Session Test
- Ansökan
Exempelvis:
<%@ 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>
Förklaring av koden:
Kodrad 11: vi ställer in attributet med hjälp av objektet pageContext, och det har tre parametrar:
- Nyckel
- Värderar
- Omfattning
I ovanstående kod är nyckeln student och värdet är "gurustudent" medan omfattningen är sidomfattningen. Här är omfattningen "sida" och den kan endast användas med sidomfattning.
Kodrad 12: Vi får värdet av attributet med hjälp av pageContext
När du kör ovanstående kod får du följande utdata:
Produktion:
- Utdata kommer att skriva ut "studentens namn är gurustudent".
8) Sida
- Sidans implicita variabel innehåller det för närvarande körda servletobjektet för motsvarande jsp.
- Fungerar som detta objekt för aktuell jsp-sida.
Exempelvis:
I det här exemplet använder vi sidobjekt för att få sidnamnet med metoden toString
<%@ 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>
Förklaring av koden:
Kodrad 10-11: I det här exemplet försöker vi använda metoden toString() för sidobjektet och försöker få strängnamnet på JSP-sidan.
När du kör koden får du följande utdata:
Produktion:
- Utdata är strängnamnet på ovanstående jsp-sida
9) Undantag
- Undantag är det implicita objektet för den kastbara klassen.
- Det används för undantagshantering i JSP.
- Undantagsobjektet kan endast användas på felsidor.Exempelvis:
<%@ 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>
Förklaring av koden:
Kodrad 10-12 – Den har en array av tal, dvs num1 med fyra element. I utgången försöker vi skriva ut det femte elementet i arrayen från num1, som inte deklareras i arraylistan. Så det används för att få undantagsobjekt av jsp.
Produktion:
Vi får ArrayIndexOfBoundsException i arrayen där vi får en num1 array av det femte elementet.