Obiecte implicite JSP
⚡ Rezumat inteligent
Obiectele implicite JSP sunt variabile predefinite pe care containerul servlet le creează automat în timpul traducerii paginii, permițând dezvoltatorilor să acceseze fluxuri de ieșire, cereri, răspunsuri, sesiuni și date de aplicație direct în interiorul unei pagini, fără declarații manuale sau configurații suplimentare.
Ce este obiectul implicit JSP?
- Obiectele implicite JSP sunt create în timpul fazei de traducere a JSP în servlet.
- Aceste obiecte pot fi utilizate direct în scriptlete care intră în metoda serviciului.
- 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:
- Afară
- Cerere
- Răspuns
- config
- Aplicatii
- Sesiune
- PageContext
- Pagină
- Excepție
Să studiem unul câte unul
1) Afară
- Out este unul dintre obiectele implicite pentru a scrie datele în buffer și a trimite ieșire către client ca răspuns
- Obiectul Out ne permite să accesăm fluxul de ieșire al servlet-ului
- Out este un obiect al javax.servlet.jsp.jspWriter clasă
- În timp ce lucrați cu servlet, avem nevoie de obiect printwriter
Exemplu:
<%@ 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>
Explicația codului:
Code Linia 11-12– out este folosit 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 rezultat, obținem valorile num1 și num2
2) Cerere
- Obiectul de solicitare este o instanță a lui java.servlet.http.HttpServletRequest și este unul dintre argumentele metodei serviciului
- Acesta va fi creat de container pentru fiecare cerere.
- Va fi folosit pentru a solicita informații precum parametrul, informațiile din antet, numele serverului etc.
- Folosește getParameter() pentru a accesa parametrul de solicitare.
Exemplu:
Implicit_jsp2.jsp(formular din care cererea este trimisă către 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 (unde se întreprinde acțiunea)
Explicația codului:
Code Linia 10-13: În implicit_jsp2.jsp(form) cererea este trimisă, prin urmare variabila nume de utilizator este procesată și trimisă către guru.jsp, care este acțiunea JSP.
Guru.jsp
Code Linia 10-11: Este acțiunea jsp în care cererea este procesată, 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, obțineți următorul rezultat „Test de bun venit”.
3) Răspuns
- „Response” este o instanță de clasă care implementează interfața HttpServletResponse
- Container generează acest obiect și trece la metoda _jspservice() ca parametru
- „Obiectul răspuns” va fi creat de container pentru fiecare cerere.
- Reprezintă răspunsul care poate fi dat clientului
- Obiectul implicit răspuns este utilizat pentru a tipa conținut, a adăuga cookie-uri și a redirecționa către pagina de răspuns
Exemplu:
<%@ 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>
Explicația codului:
Code Linia 11: În obiectul răspuns putem seta tipul de conținut
Aici setăm doar tipul de conținut în obiectul răspuns. Prin urmare, nu există nicio ieșire pentru aceasta.
4) Configurare
- „Config” este de tipul java.servlet.servletConfig
- Este creat de containerul pentru fiecare pagină jsp
- Este folosit pentru a obține parametrul de inițializare în web.xml
Exemplu:
Web.xml (specifică numele și hartaping al servletului)
Implicit_jsp5.jsp (obține valoarea numelui servletului)
<%@ 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>
Explicația codului:
În web.xml
Code Linia 14-17: În web.xml avem hartaping de servlet-uri către clase.
Implicit_jsp5.jsp
Code Linia 10-11: Pentru a obține numele servlet-ului în JSP, putem folosi config.getServletName, care ne va ajuta să obținem numele servlet-ului.
Când executați codul de mai sus, obțineți următoarea ieșire:
ieșire:
- Numele servlet-ului este „Guru„Servlet” așa cum este numele este prezent în web.xml
Aplicația 5)
- Obiectul aplicației (linia de cod 10) este o instanță a javax.servlet.ServletContext și este folosit pentru a obține informațiile de context și atributele în JSP.
- Obiectul aplicației este creat de un container pentru fiecare aplicație, atunci 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"%> <!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>
Explicația codului:
- În codul de mai sus, atributul aplicației ajută la obținerea căii de context a paginii JSP.
6) Sesiune
- Sesiunea conține obiectul „httpsession” (linia de cod 10).
- Obiectul sesiune este folosit pentru a obține, seta și elimina atribute din domeniul de aplicare a sesiunii și, de asemenea, este folosit 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"%> <!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>
Explicația codului:
Implicit_jsp7.jsp
Code Linia 11: setăm utilizatorul de atribut în variabila de sesiune și acea valoare poate fi preluată din sesiune în orice jsp este apelat din acea (_jsp8.jsp).
Code Linia 12: Apelăm un alt jsp pe href în care vom obține valoarea pentru atributul utilizator care este setat.
Implicit_jsp8.jsp
Code Linia 11: Obținem valoarea atributului utilizator de la obiectul sesiune ș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ă (_jsp8.jsp) și obținem valoarea de la obiectul sesiune al atributului utilizator (_jsp7.jsp).
7) PageContext
- Acest obiect este de tipul contextului paginii.
- Este folosit pentru a obține, seta și elimina atributele dintr-un anumit domeniu
Scopurile sunt de 4 tipuri:
- Pagină
- Cerere
- Sesiune
- Aplicatii
Exemplu:
<%@ 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>
Explicația codului:
Code Linia 11: setăm atributul folosind obiectul pageContext și are trei parametri:
- Cheie
- Valoare
- domeniu
În codul de mai sus, cheia este student și valoarea este „gurustudent”, în timp ce domeniul de aplicare este domeniul paginii. Aici domeniul de aplicare este „pagină” și se poate obține folosind doar domeniul de aplicare al paginii.
Code Linia 12: Obținem valoarea atributului folosind pageContext
Când executați codul de mai sus, obțineți următoarea ieșire:
ieșire:
- Ieșirea va afișa „numele studentului este gurustudent”.
8) Pagina
- Variabila implicită de pagină deține obiectul servlet executat curent pentru jsp-ul corespunzător.
- Acționează ca acest obiect pentru pagina jsp curentă.
Exemplu:
În acest exemplu, folosim obiectul pagină pentru a obține numele paginii folosind metoda 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>
Explicația codului:
Code Linia 10-11: În acest exemplu, încercăm să folosim metoda toString() a obiectului 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 jsp de mai sus
9) Excepție
- Excepția este obiectul implicit al clasei throwable.
- Este folosit pentru gestionarea excepțiilor în JSP.
- Obiectul 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"%> <!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>
Explicația codului:
Code Linia 10-12 – Are o matrice de numere, adică num1 cu patru elemente. În rezultat, încercăm să tipărim al cincilea element al matricei din num1, care nu este declarat în lista de matrice. Deci, este folosit pentru a obține obiectul excepție al jsp.
ieșire:
Obținem ArrayIndexOfBoundsException în matricea unde obținem o matrice num1 a celui de-al cincilea element.












