0% ont trouvé ce document utile (0 vote)
41 vues30 pages

Ch3 JSP

Transféré par

Roudeina Hamdi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
41 vues30 pages

Ch3 JSP

Transféré par

Roudeina Hamdi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Institut Supérieur d’Informatique

Tuteur : Mohamed Sahbi

Chapitre 3 : JSP Bahroun

Année 2022-2023
Une page JSP est une page HTML qui peut
contenir du
code Java. Elle est un squelette de

contient des morceaux de code


page HTML qui

Java permettant de
réaliser des traitements

dynamiques ou d’intégrer des

Introduction
La technologie JSP permet l’utilisation et la
balises JSP qui ajoutent des
création de

fonctionnalités pour
étendre les possibilités de

développement. données.
La page officielle de cette technologie est à l'adresse suivante
:http://www.oracle.com/technetwork/java/javaee/jsp/index.html

Le mécanisme JSP permet de séparer la

logiquecontrôlant la présentation des données de


la logiquemétier, contrôlant la valeur des données.

D’un point devue technique, les JSP sont

compilées par le moteur


JASPER pour devenir des
Le principe de fonctionnement est
Servlets Java.
proche de langagePHP mais à l’inverse, JSP

compile le code au lieu del’interpréter à chaque


fois, ce qui soulage la charge de
traitement du

serveur.Introduction
Les pages JSP sont exécutées par le serveur

d’applications
pour répondre aux requêtes des clients.

Les JSP ont plusieurs fonctionnalités :


 la création de sites Web dynamiques;  le travail
avec des bases de données ;

Présentation
 l’amélioration de la sécurité (le code est exécuté

par le
serveur et donc non accessible par les clients).

 l’utilisation des JavaBeans (simplicité du

code,
manipulation d’objets simples...) ;  l’utilisation

de balises personnalisées (taglib).


Avec ce modèle de programmation, il est plus aisé

de
scinder le développement d’une application Web

: • Le graphiste s’occupe de la partie présentation


HTML
Avantages
• Le développeur s’occupe de la partie logique
avec les
traitements et l’accès aux données.
Côté serveur, une page JSP est interprétée une seule
soit lors du premier appel, soit lors du lancement
fois,

du En fait, le conteneur Web crée une


conteneur Web.

Servlet à partir de la
page JSP.

Cycle de vie
La Servlet est ensuite compilée, chargée en mémoire

et mise
en service pour répondre aux requêtes clients.

Cycle de vie
Script JSP
Un script JSP contient :
 Des balises HTML :
<html>,<head>,<body>,</html>,</head>,</body>  Des
variables prédéfinis :
• request
• response
 Des balises JSP :
• Les balises de commentaire,
• Les balises de déclaration,
• Les balises de scriptlet,
• Les balises d’expression,
• Les balises de directives,
Les variables
prédéfinies
– application : le ServletContext (idem
Ils (objets implicites) sont accessibles dans les balises JSP
: – request : le HttpServletRequest
– response : le HttpServletResponse –
session : le HttpSession
– out : flot de sortie (idem response.getWriter())

getServletConfig().getContext() )
C’est un bloc de code Java compris entre les balises
suivantes : <% /* scriptlet */ %> . Ce code Java devient le
corps de la méthode_jspService() lors de la génération de
la servlet.

Les objets les plus utilisés dans les scriptlets sont :


Les balises JSP : scriptlets : <% … %>
 l'objet request pour connaître les détails de la requête
HTTP,
 l'objet out permettant d'envoyer des données vers le
client. <% String[ ] noms = {"titi", "toto"};
Exemple i++){ out.println(noms[i]);
for(int i = 0; i < noms.length; } %>
Pour évaluer une expression ou un objet Java et renvoyer sa

valeur, il
faut utiliser : – l’objet out : <% out.println(" bonjour … ");

%> – l’expression : <%= " bonjour … " %>

Les balises JSP : expressions : <%= …


%>
<%
String[ ] noms = {"nn", "tt","aa","xx"};
for(int i = 0; i < noms.length; i++){
%>
Le nom est <%= noms[i] %>
<%
}
%>
Ils sont utilisés pour déclarer des attributs et des méthodes

à <%!
l'échelle de la page private int accessCount = 0;

Les balises JSP : déclarations : <%! …

%> private int incrementCount() {


return accessCount++; }
%>

<H2>Nombre et liste des articles</H2>
Nombre d'articles : <%= incrementCount() %>
Une directive permet de spécifier des informations qui vont

servir
à configurer et à influer sur le code de la servlet

générée. Notons trois directives :

Les balises JSP : directives


 <%@ page ... %> : définir des options de
configuration <%@ include ... %> : inclure des fichiers
statiques dans la JSP <%@ taglib ... %> : définir des
tags personnalisés
– <%@ page language="java"
– <%@ page import="java.util.*, java.net.*" %> – <%@
page contentType="text/plain" %>

Les balises JSP : directives


– <%@ page session="true|false " %> – <%@ page
errorPage="pathToErrorPage" %>

Directive <%@ page ... %>


– <%@ page isErrorPage="true|false" %> – <%@ page …
Valeurs possibles :
Directive <%@ include .. %>
La directive <%@ include ... %> est utile si plusieurs pages
doivent partager une même ensemble d'information
se

(l’ajoutd’entête et de pied-de-page dans toutes les pages

jsp). Dans cecas, codez ces parties dans des fichiers

séparés et injectez les, via


cette directive, dans tous les

autre fichiers qui en ont besoin.

Les balises JSP : directives


<%@ include file="header.jsp" %>
<!-- Contenu de la page à générer -->
<%@ include file="footer.jsp" %>
<%@ page language="java" %>
<HTML><BODY>

</BODY><HTML>

Exemple 1
<%@ page language="java" %>
<html>
<head>
<title> JSP Page 2</title>
</head>
<body>
<p>
<%! int i = 0 ; %>
<% i ++ ; %>
Hello World ! <%= "Vous avez atteint ce JSP " + i + " fois" %> </p>
<%@ include file="piedDePage.html" %>
</body>
</html>
16
Exemple 2
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8">
Affichage de la date en français
<%
Date date = new Date();
<%@page import="java.text.DateFormat"%>
DateFormat df = DateFormat.getDateInstance( DateFormat.FULL , Locale.FRANCE );
<%@page import="java.util.Locale"%>
<%@page import="java.util.Date"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>

<title>JSP Page</title>
</head>
<body>
%>
<p>Au moment de l’exécution de ce script nous sommes le
<%=df.format(date)%>.</p> </body></html>
17
public class Adresse {
public class Personne {

Exemple 3 (1/4) Réalisation d’un annuaire


Personne.java
Adresse.java
package servlet.ex3;
package servlet.ex3;

String nom; String prenom; int age;


int cp;
int numero; String nomRue; String ville;
Méthodes set et get
Adresse adresse;
écrites d’une manière
… …
automatique
public Personne (String nom, String
public Adresse(int n, String r, int cp,
String v){ setCp(cp); setNumero(n); setVille(v); setPrenom(prenom); setAge(age);
setNomRue(r);}} setAdresse(adresse);}}
prenom, int age, Adresse adresse){ setNom(nom);

18

Exemple 3 (2/4)
Réalisation d’un annuaire
Personne p2=new Personne("Ben saleh ","samia",20,ad1);
annuaire.jsp
<%@page
import="servlet.ex3.Adresse, servlet.ex3.Personne, java.util.*"
contentType="text/html; charset=iso-8859-15"
%>
<%
Adresse ad1=new Adresse(17,"rue de palestine",1000, "Tunis"); Adresse
ad2=new Adresse(31," rue des fleurs",1080, "Marsa"); Adresse ad3=new
Adresse(46,"rue de la liberté",1005, "Bardo"); Adresse ad4=new
Adresse(122,"rue des martyrs",2100, "Radès");

Personne p1=new Personne("Ben saleh","Ali",23,ad1);

Personne p3=new Personne("Arfaoui", "Ali",37,ad2);


Personne p4=new Personne("Farhat", "Dali",52,ad3);
Personne p5=new Personne("Hamdi", "Monia",19,ad4);

[…]
%>
19
<% ArrayList<Personne> listePersonnes = new ArrayList();

Exemple 3 (3/4)

Réalisation d’un annuaire


annuaire.jsp

listePersonnes.add(p1);
listePersonnes.add(p2);
listePersonnes.add(p3);
listePersonnes.add(p4);
listePersonnes.add(p5);%>

<table>
<tr>
<th>Numéro</th>
<th>Nom</th>
<th>Prénom</th>
<th>Age</th>
<th>Adresse complète</th>
</tr>
20
Exemple 3 (4/4)
Réalisation d’un annuaire
[…]
<%
for(int i=0;i<listePersonnes.size();i++){ Personne p = listePersonnes.get(i);
Adresse a = p.getAdresse();
out.println("<tr>");
out.println("<td>"+(i+1)+"</td>"); out.println("<td>"+p.getNom()+"</td>");
out.println("<td>"+p.getPrenom()+"</td>"); out.println("<td>"+p.getAge()+"</td>");
out.println("<td>"+a.getNumero()+"
"+a.getNomRue()+"<br/>"+a.getCp()+"-"+a.getVille()+"</td>");out.println("</tr>");
}
%>
</table>
</body>
</html>
21

Exemple 3 – L’affichage
Numéro Nom Prénom Age Adresse complète 1 Ben saleh Ali 23 17 rue

de palestine 2 Ben saleh samia 20 17 rue de palestine 3 Arfaoui Ali 37

31 rue des fleurs

4 Farhat Dali 40 46 rue de la liberté


Réalisation d’un annuaire

5 Hamdi Monia 19 122 rue des martyrs


1000-Tunis
1000-Tunis

1080-Marsa

1005-Bardo

2100-Radès

22
int random4() {return ( int ) (Math.random() *4 ) ;}

Exemple 4
for ( int i =0; i < langages.length ; i++)

{ out.println ( "<li>" + langages [ i ] + "</ li>" ) ; }


<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE
html>
<html><head><title>JSP complet</title></head> <body>
<%! String [ ] langages = {" Java " , "C++" , " ADA" , " PHP" };

%>
<p>Parmi tous les langages orientés objets :</p> <ol>
<%

%>
</ol>
<p>Le prochain langage que j'apprends est
<b><%= langages [ random4 ( ) ] %> </b></p> </body>
</html>

Vous aimerez peut-être aussi