Obiecte implicite JSP: Tutorial complet

Cuprins:

Anonim

Ce este obiectul JSP Implicit?

  • Obiectele implicite JSP sunt create în timpul fazei de traducere a JSP către servlet.
  • Aceste obiecte pot fi utilizate direct în scriplets care intră în metoda de service.
  • Acestea sunt create automat de container și pot fi accesate folosind obiecte.

Câte obiecte implicite sunt disponibile în JSP?

Există 9 tipuri de obiecte implicite disponibile în container:

  1. afară
  2. cerere
  3. raspuns
  4. config
  5. cerere
  6. sesiune
  7. pageContext
  8. pagină
  9. excepție

Să studiem unul câte unul

afară

  • Out este unul dintre obiectele implicite pentru a scrie datele în buffer și a trimite ieșirea către client ca răspuns
  • Obiectul Out ne permite să accesăm fluxul de ieșire al servletului
  • Out este obiectul clasei javax.servlet.jsp.jspWriter
  • În timp ce lucrăm cu servlet, avem nevoie de un obiect printwriter

Exemplu:

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

Explicația codului:

Linia de cod 11-12 - out este utilizată pentru a imprima în fluxul de ieșire

Când executăm codul de mai sus, obținem următoarea ieșire:

Ieșire:

  • În ieșire, obținem valorile num1 și num2

Cerere

  • Obiectul cerere este o instanță a java.servlet.http.HttpServletRequest și este unul dintre argumentele metodei de serviciu
  • Acesta va fi creat de container pentru fiecare cerere.
  • Acesta va fi utilizat pentru a solicita informații cum ar fi parametrul, informațiile antetului, numele serverului etc.
  • Folosește getParameter () pentru a accesa parametrul de solicitare.

Exemplu:

Implicit_jsp2.jsp (formular din care cererea este trimisă la guru.jsp)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Implicit Guru formular JSP2 

Guru.jsp (unde se acționează)

Explicația codului:

Linia de cod 10-13: În implicit_jsp2.jsp (formular) este trimisă cererea, prin urmare variabila nume de utilizator este procesată și trimisă la guru.jsp care este acțiunea JSP.

Guru.jsp

Linia de cod 10-11: Este acțiunea jsp unde se procesează solicitarea, iar numele de utilizator este preluat din formularul jsp.

Când executați codul de mai sus, obțineți următoarea ieșire

Ieșire:

Când scrieți testul și faceți clic pe butonul de trimitere, veți obține următoarea ieșire „Test de bun venit”.

Raspuns

  • „Răspuns” este o instanță a clasei care implementează interfața HttpServletResponse
  • Containerul generează acest obiect și trece la metoda _jspservice () ca parametru
  • „Obiectul de răspuns” va fi creat de container pentru fiecare cerere.
  • Reprezintă răspunsul care poate fi dat clientului
  • Obiectul implicit de răspuns este utilizat pentru tipul de conținut, adăugarea cookie-ului și redirecționarea către pagina de răspuns

Exemplu:

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

Explicația codului:

Linia de cod 11: În obiectul de răspuns putem seta tipul de conținut

Aici setăm doar tipul de conținut în obiectul de răspuns. Prin urmare, nu există nicio ieșire pentru acest lucru.

Config

  • „Config” este de tip java.servlet.servletConfig
  • Este creat de container pentru fiecare pagină jsp
  • Este folosit pentru a obține parametrul de inițializare în web.xml

Exemplu:

Web.xml (specifică numele și maparea servletului)

Implicit_jsp5.jsp (obținerea valorii numelui servletului)

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

Explicația codului:

În web.xml

Linia de cod 14-17: În web.xml avem maparea servletelor la clase.

Implicit_jsp5.jsp

Linia de cod 10-11: Pentru a obține numele servletului în JSP, putem folosi config.getServletName, care ne va ajuta să obținem numele servletului.

Când executați codul de mai sus, obțineți următoarea ieșire:

Ieșire:

  • Numele servletului este „GuruServlet”, deoarece numele este prezent în web.xml

Cerere

  • Obiectul aplicației (linia de cod 10) este o instanță a javax.servlet.ServletContext și este utilizat pentru a obține informațiile de context și atributele din JSP.
  • Obiectul aplicației este creat de un container pentru fiecare aplicație, când aplicația este implementată.
  • Obiectul Servletcontext conține un set de metode care sunt utilizate pentru a interacționa cu containerul servlet. Putem găsi informații despre containerul servlet.

Exemplu:

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

Explicația codului:

  • În codul de mai sus, atributul aplicației ajută la obținerea căii de context a paginii JSP.

Sesiune

  • Sesiunea conține obiectul „httpsession” (linia de cod 10).
  • Obiectul sesiunii este utilizat pentru a obține, seta și elimina atributele domeniului sesiunii și, de asemenea, este utilizat pentru a obține informații despre sesiune

Exemplu:

Implicit_jsp7 (atributul este setat)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> JSP implicit <% session.setAttribute ("utilizator", "GuruJSP"); %> Faceți clic aici pentru a obține numele de utilizator 

Implicit_jsp8.jsp (getAttribute)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru JSP8 implicit <% String name = (String) session.getAttribute ("user");out.println ("Numele utilizatorului este" + nume);%>

Explicația codului:

Implicit_jsp7.jsp

Linia de cod 11: setăm utilizatorul de atribut în variabila sesiune, iar acea valoare poate fi preluată din sesiune în oricare jsp este apelat din acea (_jsp8.jsp).

Linia de cod 12: apelăm un alt jsp pe href în care vom obține valoarea setată pentru atributul utilizatorului.

Implicit_jsp8.jsp

Linia de cod 11: Obținem valoarea atributului utilizator din obiectul sesiunii și afișăm acea valoare

Când executați codul de mai sus, obțineți următoarea ieșire:

Când faceți clic pe linkul pentru numele de utilizator. Veți obține următoarea ieșire.

Ieșire:

  • Când facem clic pe linkul dat în implicit_jsp7.jsp, atunci suntem redirecționați către a doua pagină jsp, adică pagina (_jsp8.jsp) și obținem valoarea din obiectul de sesiune al atributului utilizator (_jsp7.jsp).

pageContext:

  • Acest obiect este de tipul pagecontextului.
  • Este folosit pentru a obține, seta și elimina atributele dintr-un anumit domeniu de aplicare

Domeniile de aplicare sunt de 4 tipuri:

  • Pagină
  • Cerere
  • Sesiune
  • Cerere

Exemplu:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru implicit JSP9 <% pageContext.setAttribute ("student", "gurustudent", pageContext.PAGE_SCOPE);Numele șirului = (Șir) pageContext.getAttribute ("student");out.println ("numele studentului este" + numele);%>

Explicația codului:

Linia de cod 11: setăm atributul folosind obiectul pageContext și are trei parametri:

  • Cheie
  • Valoare
  • Domeniul de aplicare

În codul de mai sus, cheia este student și valoarea este „gurustudentă”, în timp ce domeniul este domeniul de aplicare al paginii. Aici domeniul de aplicare este „pagină” și poate fi utilizat doar cu ajutorul paginii.

Linia de cod 12: Obținem valoarea atributului folosind pageContext

Când executați codul de mai sus, obțineți următoarea ieșire:

Ieșire:

  • Rezultatul va tipări „numele studentului este gurududent”.

Pagină

  • Variabila implicită a paginii deține obiectul servlet executat în prezent pentru jsp corespunzător.
  • Acționează ca acest obiect pentru pagina jsp curentă.

Exemplu:

În acest exemplu, folosim obiectul paginii pentru a obține numele paginii folosind metoda toString

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Guru implicit JSP10 <% String pageName = page.toString ();out.println ("Numele paginii este" + Numele paginii);%>

Explicația codului:

Linia de cod 10-11: În acest exemplu, încercăm să folosim metoda toString () a obiectului de pagină și încercăm să obținem numele șirului paginii JSP.

Când executați codul, obțineți următoarea ieșire:

Ieșire:

  • Ieșirea este numele șirului paginii de deasupra jsp

Excepție

  • Excepția este obiectul implicit al clasei aruncabile.
  • Este folosit pentru gestionarea excepțiilor în JSP.
  • Obiectul de excepție poate fi utilizat numai în paginile de eroare.

    Exemplu:

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

Explicația codului:

Linia de cod 10-12 - Are o matrice de numere, adică num1 cu patru elemente. În rezultat, încercăm să imprimăm cel de-al cincilea element al matricei de la num1, care nu este declarat în lista matricii. Deci este folosit pentru a obține obiectul de excepție al jsp.

Ieșire:

Obținem ArrayIndexOfBoundsException în matricea unde primim o matrice num1 a celui de-al cincilea element.