JSP Implicit Objects: Complete Tutorial

Innehållsförteckning:

Anonim

Vad är JSP Implicit objekt?

  • JSP implicita objekt skapas under översättningsfasen av JSP till servlet.
  • Dessa objekt kan användas direkt i scriplets som ingår i servicemetoden.
  • De skapas automatiskt av behållaren och de kan nås med hjälp av objekt.

Hur många implicita objekt finns i JSP?

Det finns nio typer av implicita objekt tillgängliga i behållaren:

  1. ut
  2. begäran
  3. svar
  4. config
  5. Ansökan
  6. session
  7. pageContext
  8. sida
  9. undantag

Låt oss studera en efter en

ut

  • Out är ett av de implicita objekten för att skriva data till bufferten och skicka utdata till klienten som svar
  • Out-objektet ger oss åtkomst till servlets utdataström
  • Out är objekt för klassen javax.servlet.jsp.jspWriter
  • När vi arbetar med servlet behöver vi ett författarobjekt

Exempel:

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicit Guru JSP1 <% int num1 = 10; int num2 = 20;out.println ("num1 är" + num1);out.println ("num2 är" + num2);%>

Förklaring av koden:

Kodlinje 11-12 - ut används för att skriva ut i utdataströmmen

När vi kör ovanstående kod får vi följande utdata:

Produktion:

  • I utgången får vi värdena num1 och num2

Begäran

  • Begäringsobjektet är en instans av java.servlet.http.HttpServletRequest och det är ett av argumenten för servicemetoden
  • Det kommer att skapas med container 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 begäran parametern.

Exempel:

Implicit_jsp2.jsp (formulär från vilket begäran skickas till guru.jsp)

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicit Guru form JSP2 

Guru.jsp (där åtgärden vidtas)

Förklaring av kod:

Kodrad 10-13: I implicit_jsp2.jsp (form) begäran skickas, varför det variabla användarnamnet behandlas och skickas till guru.jsp vilket är en åtgärd för JSP.

Guru.jsp

Kod Line10-11: Det är åtgärd jsp där begäran behandlas och användarnamn är hämtat från formuläret jsp.

När du kör koden ovan får du följande utdata

Produktion:

När du skriver test och klickar på knappen Skicka får du följande utgång "Välkomsttest."

Svar

  • "Svar" är en förekomst av klass som implementerar HttpServletResponse-gränssnittet
  • Container genererar detta objekt och skickar till _jspservice () -metoden som parameter
  • "Svarobjekt" skapas av behållaren för varje begäran.
  • Det representerar svaret som kan ges till klienten
  • Svarets implicita objekt används för att innehållstyp, lägga till cookie och omdirigera till svarsidan

Exempel:

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicit Guru JSP4 <% response.setContentType ("text / html"); %>

Förklaring av koden:

Kodrad 11: I svarsobjektet kan vi ställa in innehållstyp

Här ställer vi bara in innehållstypen i svarsobjektet. Därför finns det ingen utdata för detta.

Konfig

  • "Config" är av typen java.servlet.servletConfig
  • Det skapas av behållaren för varje jsp-sida
  • Den används för att få initialiseringsparametern i web.xml

Exempel:

Web.xml (anger servlets namn och mappning)

Implicit_jsp5.jsp (får värdet av servletnamn)

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicit Guru JSP5 <% String servletName = config.getServletName ();out.println ("Servlet Name is" + servletName);%>

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å servlet i JSP kan vi använda config.getServletName, vilket hjälper oss att få namnet på servlet.

När du kör koden ovan får du följande utdata:

Produktion:

  • Servlets namn är "GuruServlet" eftersom namnet finns i web.xml

Ansökan

  • Applikationsobjekt (kodrad 10) är en förekomst av javax.servlet.ServletContext och används för att få sammanhangsinformation och attribut i JSP.
  • Applikationsobjekt skapas av container en per applikation när applikationen distribueras.
  • Servletcontext-objekt innehåller en uppsättning metoder som används för att interagera med servletbehållaren. Vi kan hitta information om servletbehållaren

Exempel:

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru Implicit JSP6 <% application.getContextPath (); %>

Förklaring av koden:

  • I ovanstående kod hjälper applikationsattributet att få sammanhangssökvägen för JSP-sidan.

Session

  • Sessionen innehåller "httpsession" -objektet (kodrad 10).
  • Sessionsobjekt används för att hämta, ställa in och ta bort attribut till sessionens omfång och används också för att få sessionsinformation

Exempel:

Implicit_jsp7 (attribut är inställt)

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicit JSP <% session.setAttribute ("användare", "GuruJSP"); %> Klicka här för att få användarnamn 

Implicit_jsp8.jsp (getAttribute)

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> implicit Guru JSP8 <% String name = (String) session.getAttribute ("user");out.println ("Användarnamn är" + namn);%>

Förklaring av koden:

Implicit_jsp7.jsp

Kodrad 11: vi ställer in attributanvändaren i sessionsvariabeln, och det värdet kan hämtas från sessionen i vilken jsp som helst som kallas från den (_jsp8.jsp).

Kodrad 12: Vi ringer till en annan jsp på href där vi får värdet för attributanvändaren som är inställd.

Implicit_jsp8.jsp

Kodrad 11: Vi får värdet på användarattributet från sessionobjektet och visar det värdet

När du kör koden ovan får du följande utdata:

När du klickar på länken för användarnamnet. Du får 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) -sidan och vi får värdet från sessionsobjektet för användarattributet (_jsp7.jsp).

pageContext:

  • Detta objekt är av typen av sidkontext.
  • Den används för att hämta, ställa in och ta bort attribut från ett visst omfång

Omfattningen är av fyra typer:

  • Sida
  • Begäran
  • Session
  • Ansökan

Exempel:

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicit Guru JSP9 <% pageContext.setAttribute ("student", "gurustudent", pageContext.PAGE_SCOPE);Strängnamn = (String) pageContext.getAttribute ("student");out.println ("studentnamnet är" + namn);%>

Förklaring av koden:

Kodrad 11: vi ställer in attributet med pageContext-objekt, och det har tre parametrar:

  • Nyckel
  • Värde
  • Omfattning

I ovanstående kod är nyckeln student och värdet är "gurustudent" medan omfånget är sidomfånget. Här är omfånget "sida" och det kan bara användas med sidomfång.

Kodrad 12: Vi får värdet av attributet med pageContext

När du kör koden ovan får du följande utdata:

Produktion:

  • Resultatet kommer att skriva ut "studentnamn är gurustudent".

Sida

  • Sidan implicit variabel innehåller det för närvarande körda servlet-objektet för motsvarande jsp.
  • Fungerar som detta objekt för aktuell jsp-sida.

Exempel:

I det här exemplet använder vi sidobjekt för att få sidnamnet med metoden toString

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicit Guru JSP10 <% String pageName = page.toString ();out.println ("Sidnamnet är" + sidnamn);%>

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öka få strängnamnet på JSP-sidan.

När du kör koden får du följande utdata:

Produktion:

  • Output är strängnamn ovanför jsp-sidan

Undantag

  • Undantag är det implicita objektet för den kastbara klassen.
  • Den används för undantagshantering i JSP.
  • Undantagsobjektet kan endast användas på felsidor.

    Exempel:

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%> Implicit Guru JSP 11 <% int [] num1 = {1,2,3,4};out.println (num1 [5]);%><% = undantag%>

Förklaring av koden:

Kodrad 10-12 - Den har en rad med siffror, dvs num1 med fyra element. I utgången försöker vi skriva ut det femte elementet i arrayen från num1, vilket inte deklareras i arraylistan. Så det används för att få undantagsobjekt för jsp.

Produktion:

Vi får ArrayIndexOfBoundsException i matrisen där vi får en num1-array av det femte elementet.