Objets implicites JSP

Quโ€™est-ce que lโ€™objet implicite JSP ?

  • Les objets implicites JSP sont crรฉรฉs pendant la phase de traduction du JSP vers le servlet.
  • Ces objets peuvent รชtre directement utilisรฉs dans les scripts qui vont dans la mรฉthode de service.
  • Ils sont crรฉรฉs automatiquement par le conteneur et sont accessibles ร  l'aide d'objets.

Combien dโ€™objets implicites sont disponibles dans JSP ?

Il existe 9 types d'objets implicites disponibles dans le conteneur :

  1. de stock
  2. Demander
  3. Rรฉponse
  4. Config
  5. Application
  6. Session
  7. PageContexte
  8. Page
  9. Exception

ร‰tudions un par un

1) Sortie

  • Out est l'un des objets implicites pour รฉcrire les donnรฉes dans le tampon et envoyer la sortie au client en rรฉponse
  • L'objet Out nous permet d'accรฉder au flux de sortie de la servlet
  • Out est l'objet de la classe javax.servlet.jsp.jspWriter
  • En travaillant avec servlet, nous avons besoin d'un objet printwriter

Exemple :

<%@ 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>

Explication du code :

Code Ligne 11-12โ€“ out est utilisรฉ pour imprimer dans le flux de sortie

Lorsque nous exรฉcutons le code ci-dessus, nous obtenons le rรฉsultat suivant :

En JSP

Sortie :

  • En sortie, nous obtenons les valeurs de num1 et num2

2) Demande

  • L'objet de requรชte est une instance de java.servlet.http.HttpServletRequest et c'est l'un des arguments de la mรฉthode de service.
  • Il sera crรฉรฉ par conteneur pour chaque requรชte.
  • Il sera utilisรฉ pour demander des informations telles que le paramรจtre, les informations d'en-tรชte, le nom du serveur, etc.
  • Il utilise getParameter() pour accรฉder au paramรจtre de requรชte.

Exemple :

Implicit_jsp2.jsp (formulaire ร  partir duquel la demande est envoyรฉe ร  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 (oรน l'action est effectuรฉe)

Requรชte en JSP

Explication du code:

Code Lignes 10-13 : Dans implicit_jsp2.jsp(form), la requรชte est envoyรฉe, donc le nom d'utilisateur variable est traitรฉ et envoyรฉ ร  guru.jsp qui est l'action de JSP.

Guru.jsp

Code Lignes 10-11 : C'est l'action jsp oรน la demande est traitรฉe et le nom d'utilisateur est extrait du formulaire jsp.

Lorsque vous exรฉcutez le code ci-dessus, vous obtenez le rรฉsultat suivant

Sortie :

Requรชte en JSP

Lorsque vous รฉcrivez un test et cliquez sur le bouton Soumettre, vous obtenez le rรฉsultat suivant ยซ Test de bienvenue ยป.

Requรชte en JSP

3) Rรฉponse

  • ยซ Response ยป est une instance de classe qui implรฉmente l'interface HttpServletResponse
  • Le conteneur gรฉnรจre cet objet et passe ร  la mรฉthode _jspservice() en tant que paramรจtre
  • Un ยซ objet de rรฉponse ยป sera crรฉรฉ par le conteneur pour chaque requรชte.
  • Il reprรฉsente la rรฉponse qui peut รชtre apportรฉe au client
  • L'objet implicite de rรฉponse est utilisรฉ pour saisir le contenu, ajouter un cookie et rediriger vers la page de rรฉponse

Exemple :

<%@ 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>

Explication du code :

Code Ligne 11: Dans l'objet de rรฉponse, nous pouvons dรฉfinir le type de contenu

Ici, nous dรฉfinissons uniquement le type de contenu dans l'objet de rรฉponse. Par consรฉquent, il nโ€™y a aucune sortie pour cela.

4) Configuration

  • ยซ Config ยป est du type java.servlet.servletConfig
  • Il est crรฉรฉ par le conteneur pour chaque page jsp
  • Il est utilisรฉ pour obtenir le paramรจtre d'initialisation dans web.xml

Exemple :

Web.xml (spรฉcifie le nom et la carte)ping du servlet)

Configuration en JSP

Implicit_jsp5.jsp (obtention de la valeur du nom du servlet)

<%@ 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>

Explication du code :

Dans web.xml

Code Ligne 14-17: Dans web.xml, nous avons une carteping des servlets aux classes.

Implicit_jsp5.jsp

Code Ligne 10-11: Pour obtenir le nom du servlet dans JSP, nous pouvons utiliser config.getServletName, ce qui nous aidera ร  obtenir le nom du servlet.

Lorsque vous exรฉcutez le code ci-dessus, vous obtenez le rรฉsultat suivant :

Rรฉponse en JSP

Sortie :

  • Le nom du servlet est ยซ GuruServlet ยป car le nom est prรฉsent dans web.xml

5) Application

  • L'objet Application (ligne de code 10) est une instance de javax.servlet.ServletContext et il est utilisรฉ pour obtenir les informations de contexte et les attributs dans JSP.
  • L'objet Application est crรฉรฉ par conteneur, un par application, lorsque l'application est dรฉployรฉe.
  • L'objet Servletcontext contient un ensemble de mรฉthodes utilisรฉes pour interagir avec le conteneur de servlet. Nous pouvons trouver des informations sur le conteneur de servlet.

Exemple :

<%@ 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>

Explication du code :

  • Dans le code ci-dessus, l'attribut d'application permet d'obtenir le chemin contextuel de la page JSP.

6) Sรฉance

  • La session contient l'objet ยซ httpsession ยป (ligne de code 10).
  • L'objet de session est utilisรฉ pour obtenir, dรฉfinir et supprimer des attributs dans la portรฉe de la session et รฉgalement pour obtenir des informations sur la session.

Exemple :

Implicit_jsp7 (l'attribut est dรฉfini)

<%@ 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>

Explication du code :

Implicit_jsp7.jsp

Code Ligne 11: nous dรฉfinissons l'attribut user dans la variable de session, et cette valeur peut รชtre rรฉcupรฉrรฉe de la session dans le jsp appelรฉ ร  partir de celui-ci (_jsp8.jsp).

Code Ligne 12: Nous appelons une autre jsp sur href dans laquelle nous obtiendrons la valeur de l'attribut user qui est dรฉfini.

Implicit_jsp8.jsp

Code Ligne 11: Nous obtenons la valeur de l'attribut utilisateur de l'objet de session et affichons cette valeur

Lorsque vous exรฉcutez le code ci-dessus, vous obtenez le rรฉsultat suivant :

Session en JSP

Lorsque vous cliquez sur le lien pour le nom d'utilisateur. Vous obtiendrez le rรฉsultat suivant.

Session en JSP

Sortie :

  • Lorsque nous cliquons sur le lien donnรฉ dans implicit_jsp7.jsp, nous sommes redirigรฉs vers la deuxiรจme page jsp, c'est-ร -dire la page (_jsp8.jsp) et nous obtenons la valeur de l'objet de session de l'attribut utilisateur (_jsp7.jsp).

7) Contexte de la page

  • Cet objet est du type pagecontext.
  • Il est utilisรฉ pour obtenir, dรฉfinir et supprimer les attributs d'une portรฉe particuliรจre

Les scopes sont de 4 types :

  • Page
  • Demander
  • Session
  • Application

Exemple :

<%@ 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>

Explication du code :

Code Ligne 11: nous dรฉfinissons l'attribut ร  l'aide de l'objet pageContext, et il a trois paramรจtres :

  • ACTIVITES
  • Valeur
  • Domaine

Dans le code ci-dessus, la clรฉ est student et la valeur est ยซ gurustudent ยป tandis que la portรฉe est la portรฉe de la page. Ici, la portรฉe est ยซ page ยป et elle ne peut รชtre obtenue qu'en utilisant la portรฉe de la page.

Code Ligne 12: Nous obtenons la valeur de l'attribut en utilisant pageContext

Lorsque vous exรฉcutez le code ci-dessus, vous obtenez le rรฉsultat suivant :

Contexte de page dans JSP

Sortie :

  • La sortie affichera ยซ le nom de lโ€™รฉtudiant est gurustudent ยป.

8) Page

  • La variable implicite de page contient l'objet servlet actuellement exรฉcutรฉ pour le jsp correspondant.
  • Agit comme cet objet pour la page jsp actuelle.

Exemple :

Dans cet exemple, nous utilisons l'objet page pour obtenir le nom de la page ร  l'aide de la mรฉthode 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>

Explication du code :

Code Ligne 10-11: Dans cet exemple, nous essayons d'utiliser la mรฉthode toString() de l'objet page et essayons d'obtenir le nom de chaรฎne de la page JSP.

Lorsque vous exรฉcutez le code, vous obtenez le rรฉsultat suivant :

Page en JSP

Sortie :

  • La sortie est le nom de chaรฎne de la page jsp ci-dessus

9) Exception

  • L'exception est l'objet implicite de la classe jetable.
  • Il est utilisรฉ pour gestion des exceptions dans JSP.
  • L'objet d'exception ne peut รชtre utilisรฉ que dans les pages d'erreur.Exemple :
<%@ 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>

Explication du code :

Code Ligne 10-12 โ€“ Il comporte un tableau de nombres, cโ€™est-ร -dire num1 avec quatre รฉlรฉments. Dans la sortie, nous essayons d'imprimer le cinquiรจme รฉlรฉment du tableau ร  partir de num1, qui n'est pas dรฉclarรฉ dans la liste du tableau. Il est donc utilisรฉ pour obtenir l'objet d'exception du jsp.

Sortie :

Exception dans JSP

Nous obtenons ArrayIndexOfBoundsException dans le tableau oรน nous obtenons un tableau num1 du cinquiรจme รฉlรฉment.

Rรฉsumez cet article avec :