Obiecte implicite JSP

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:

  1. Afarฤƒ
  2. Cerere
  3. Rฤƒspuns
  4. config
  5. Aplicatii
  6. Sesiune
  7. PageContext
  8. Paginฤƒ
  9. 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:

รŽn JSP

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)

Cerere รฎn JSP

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:

Cerere รฎn JSP

Cรขnd scrieศ›i testul ศ™i faceศ›i clic pe butonul de trimitere, obศ›ineศ›i urmฤƒtorul rezultat โ€žTest de bun venitโ€.

Cerere รฎn JSP

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)

Configurare รฎn JSP

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:

Rฤƒspuns รฎn JSP

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:

Sesiune รฎn JSP

Cรขnd faceศ›i clic pe linkul pentru numele de utilizator. Veศ›i obศ›ine urmฤƒtoarea ieศ™ire.

Sesiune รฎn JSP

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:

PageContext รฎn JSP

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:

Pagina รฎn JSP

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:

Excepศ›ie รฎn JSP

Obศ›inem ArrayIndexOfBoundsException รฎn matricea unde obศ›inem o matrice num1 a celui de-al cincilea element.

Rezumaศ›i aceastฤƒ postare cu: