JSP Impliciete objecten: volledige zelfstudie

Inhoudsopgave:

Anonim

Wat is het impliciete JSP-object?

  • Impliciete JSP-objecten worden gemaakt tijdens de vertaalfase van JSP naar de servlet.
  • Deze objecten kunnen direct worden gebruikt in scriplets die bij de servicemethode horen.
  • Ze worden automatisch door de container gemaakt en zijn toegankelijk via objecten.

Hoeveel impliciete objecten zijn beschikbaar in JSP?

Er zijn 9 soorten impliciete objecten beschikbaar in de container:

  1. uit
  2. verzoek
  3. reactie
  4. config
  5. toepassing
  6. sessie
  7. pageContext
  8. bladzijde
  9. uitzondering

Laten we een voor een studeren

uit

  • Out is een van de impliciete objecten om de gegevens naar de buffer te schrijven en als antwoord de uitvoer naar de client te sturen
  • Met het Out-object hebben we toegang tot de uitvoerstroom van de servlet
  • Out is het object van de klasse javax.servlet.jsp.jspWriter
  • Tijdens het werken met servlet hebben we een printwriter-object nodig

Voorbeeld:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Impliciete goeroe JSP1 <% int num1 = 10; int num2 = 20;out.println ("num1 is" ​​+ num1);out.println ("num2 is" + num2);​

Uitleg van de code:

Coderegel 11-12 - uit wordt gebruikt om in de uitvoerstroom af te drukken

Wanneer we de bovenstaande code uitvoeren, krijgen we de volgende uitvoer:

Uitgang:

  • In de uitvoer krijgen we de waarden van num1 en num2

Verzoek

  • Het request-object is een instantie van java.servlet.http.HttpServletRequest en het is een van de argumenten van de servicemethode
  • Het wordt voor elk verzoek per container aangemaakt.
  • Het wordt gebruikt om de informatie op te vragen, zoals parameter, header-informatie, servernaam, enz.
  • Het gebruikt getParameter () om toegang te krijgen tot de verzoekparameter.

Voorbeeld:

Implicit_jsp2.jsp (formulier van waaruit het verzoek naar guru.jsp wordt gestuurd)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Impliciete goeroe van JSP2 

Guru.jsp (waar de actie wordt ondernomen)

Toelichting code:

Coderegel 10-13: In implicit_jsp2.jsp (formulier) wordt het verzoek verzonden, vandaar dat de variabele gebruikersnaam wordt verwerkt en verzonden naar guru.jsp, wat een actie is van JSP.

Guru.jsp

Code Line10-11: Het is actie jsp waar het verzoek wordt verwerkt, en de gebruikersnaam wordt uit het formulier jsp gehaald.

Als je de bovenstaande code uitvoert, krijg je de volgende output

Uitgang:

Als je een test schrijft en op de verzendknop klikt, krijg je de volgende output "Welkomsttest".

Reactie

  • "Response" is een instantie van klasse die de HttpServletResponse-interface implementeert
  • Container genereert dit object en geeft als parameter door aan de methode _jspservice ()
  • Voor elk verzoek wordt door de container een "antwoordobject" gemaakt.
  • Het vertegenwoordigt het antwoord dat aan de klant kan worden gegeven
  • Het respons-impliciete object wordt gebruikt om inhoud te typen, cookie toe te voegen en om te leiden naar de responspagina

Voorbeeld:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Impliciete Guru JSP4 <% response.setContentType ("text / html"); ​

Uitleg van de code:

Coderegel 11: In het responsobject kunnen we het inhoudstype instellen

Hier stellen we alleen het inhoudstype in het responsobject in. Daarom is hier geen output voor.

Config

  • "Config" is van het type java.servlet.servletConfig
  • Het wordt gemaakt door de container voor elke jsp-pagina
  • Het wordt gebruikt om de initialisatieparameter in web.xml op te halen

Voorbeeld:

Web.xml (specificeert de naam en mapping van de servlet)

Implicit_jsp5.jsp (de waarde van de servletnaam ophalen)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Impliciete Guru JSP5 <% String servletName = config.getServletName ();out.println ("Servletnaam is" + servletnaam);%>

Uitleg van de code:

In web.xml

Coderegel 14-17: In web.xml hebben we toewijzing van servlets aan de klassen.

Implicit_jsp5.jsp

Coderegel 10-11: Om de naam van de servlet in JSP te krijgen, kunnen we config.getServletName gebruiken, wat ons zal helpen om de naam van de servlet te achterhalen.

Als je de bovenstaande code uitvoert, krijg je de volgende output:

Uitgang:

  • Servletnaam is "GuruServlet" zoals de naam aanwezig is in web.xml

Toepassing

  • Toepassingsobject (coderegel 10) is een instantie van javax.servlet.ServletContext en wordt gebruikt om de contextinformatie en attributen in JSP op te halen.
  • Toepassingsobject wordt gemaakt door container één per toepassing, wanneer de toepassing wordt geïmplementeerd.
  • Servletcontext-object bevat een reeks methoden die worden gebruikt om te communiceren met de servlet-container. We kunnen informatie vinden over de servlet-container

Voorbeeld:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru Impliciete JSP6 <% application.getContextPath (); ​

Uitleg van de code:

  • In de bovenstaande code helpt het toepassingskenmerk om het contextpad van de JSP-pagina op te halen.

Sessie

  • De sessie bevat het "httpsession" -object (coderegel 10).
  • Session-object wordt gebruikt om attributen voor sessiebereik op te halen, in te stellen en te verwijderen en wordt ook gebruikt om sessie-informatie op te halen

Voorbeeld:

Implicit_jsp7 (attribuut is ingesteld)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Impliciete JSP <% session.setAttribute ("user", "GuruJSP"); ​ Klik hier om de gebruikersnaam op te halen 

Implicit_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> impliciete Guru JSP8 <% String name = (String) session.getAttribute ("user");out.println ("Gebruikersnaam is" + naam);​

Uitleg van de code:

Implicit_jsp7.jsp

Coderegel 11: we stellen het attribuutgebruiker in de sessievariabele in, en die waarde kan worden opgehaald uit de sessie, ongeacht welke jsp wordt aangeroepen vanaf die (_jsp8.jsp).

Coderegel 12: we roepen een andere jsp op href aan waarin we de waarde voor attribuutgebruiker krijgen die is ingesteld.

Implicit_jsp8.jsp

Coderegel 11: We halen de waarde van het gebruikersattribuut uit het sessieobject en geven die waarde weer

Als je de bovenstaande code uitvoert, krijg je de volgende output:

Wanneer u op de link voor de gebruikersnaam klikt. U krijgt de volgende uitvoer.

Uitgang:

  • Wanneer we op de link klikken die in implicit_jsp7.jsp wordt gegeven, worden we omgeleid naar de tweede jsp-pagina, dat wil zeggen (_jsp8.jsp) -pagina en we krijgen de waarde van het sessieobject van het gebruikersattribuut (_jsp7.jsp).

pageContext:

  • Dit object is van het type paginacontext.
  • Het wordt gebruikt om de attributen van een bepaald bereik op te halen, in te stellen en te verwijderen

Scopes zijn van 4 soorten:

  • Bladzijde
  • Verzoek
  • Sessie
  • Toepassing

Voorbeeld:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Impliciete Guru JSP9 <% pageContext.setAttribute ("student", "gurustudent", pageContext.PAGE_SCOPE);Stringnaam = (String) pageContext.getAttribute ("student");out.println ("studentnaam is" + naam);​

Uitleg van de code:

Coderegel 11: we stellen het attribuut in met behulp van het pageContext-object en het heeft drie parameters:

  • Sleutel
  • Waarde
  • Reikwijdte

In de bovenstaande code is de sleutel student en is de waarde "gurustudent", terwijl het bereik het paginabereik is. Hier is het bereik "pagina" en kan het alleen paginabereik gebruiken.

Coderegel 12: we krijgen de waarde van het attribuut met pageContext

Als je de bovenstaande code uitvoert, krijg je de volgende output:

Uitgang:

  • De output zal "student name is gurustudent" weergeven.

Bladzijde

  • De impliciete variabele van de pagina bevat het momenteel uitgevoerde servlet-object voor de overeenkomstige jsp.
  • Fungeert als dit object voor de huidige jsp-pagina.

Voorbeeld:

In dit voorbeeld gebruiken we een pagina-object om de paginanaam op te halen met de methode toString

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Impliciete Guru JSP10 <% String pageName = page.toString ();out.println ("Paginanaam is" + paginanaam);%>

Uitleg van de code:

Coderegel 10-11: In dit voorbeeld proberen we de methode toString () van het pagina-object te gebruiken en proberen we de stringnaam van de JSP-pagina op te halen.

Als je de code uitvoert, krijg je de volgende output:

Uitgang:

  • De uitvoer is de tekenreeksnaam van de bovenstaande jsp-pagina

Uitzondering

  • Uitzondering is het impliciete object van de throwable-klasse.
  • Het wordt gebruikt voor het afhandelen van uitzonderingen in JSP.
  • Het uitzonderingsobject kan alleen worden gebruikt in foutpagina's.

    Voorbeeld:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1" isErrorPage = "true"%> Impliciete Guru JSP 11 <% int [] num1 = {1,2,3,4};out.println (num1 [5]);%><% = uitzondering%>

Uitleg van de code:

Coderegel 10-12 - Het heeft een reeks getallen, dwz num1 met vier elementen. In de uitvoer proberen we het vijfde element van de array af te drukken vanaf num1, dat niet is gedeclareerd in de arraylijst. Het wordt dus gebruikt om het exception-object van de jsp te krijgen.

Uitgang:

We krijgen ArrayIndexOfBoundsException in de array waar we een num1-array van het vijfde element krijgen.