Académique Documents
Professionnel Documents
Culture Documents
Cours
Architectures n-tiers et orientées
services
NAHLA HADDAR
MAÎTRE ASSISTANT, ISIM-
ISIM-SFAX, UNIVERSITÉ DE SFAX
MEMBRE DU LABORATOIRE MIRACL
1
17/11/2020
2
Plan de cette partie
2
17/11/2020
4
Objets prédéfinis dans une JSP
5
Éléments de scripts JSP
3
17/11/2020
6
Scriptlets <% %>
<%
String[] langages = {"Java", "C++", "Python"};
out.println("<h3>Principaux langages orientés objets : </h3>");
for (int i=0; i < langages.length; i++) {
out.println("<p>" + langages[i] + "</p>");
}
%>
7
Déclarations <%! %>
<%! <%!
float somme(int a, int b){ int compteur = 0;
return (a+b)/2; %>
}
%>
4
17/11/2020
8
Expressions <%= %>
9
Scriplet de directives
5
17/11/2020
10
Attributs de la directive Page
11
d’information
(JSP/SERVLET)
6
17/11/2020
12
Partager des Java beans !
Pourquoi un Java Beans?
o En réalité, un bean est un simple objet Java qui suit certaines contraintes, et représente
généralement des données du monde réel.
o Principaux concepts mis en jeu:
Les propriétés : un bean est conçu pour être paramétrable. Les propriétés permettent de
paramétrer le bean, en y stockant des données.
La sérialisation : un bean est conçu pour pouvoir être persistant. La sérialisation est un processus
qui permet de sauvegarder l'état d'un bean, et donne ainsi la possibilité de le restaurer par la
suite.
La réutilisation : un bean est un composant conçu pour être réutilisable. Ne contenant que des
données ou du code métier, un tel composant n'a en effet pas de lien direct avec la couche
de présentation, et peut également être distant de la couche d'accès aux données.
L'introspection : un bean est conçu pour être paramétrable de manière dynamique.
L'introspection est un processus qui permet de connaître le contenu d'un composant (attributs,
méthodes et événements) de manière dynamique, sans disposer de son code source.
13
Les Java beans
Règles de normalisation:
o Un bean :
doit être une classe publique ;
doit avoir au moins un constructeur par défaut, public et sans paramètres.
Java l'ajoutera de lui-même si aucun constructeur n'est explicité ;
peut implémenter l'interface Serializable, il devient ainsi persistant et son état
peut être sauvegardé ;
ne doit pas avoir de champs publics ;
peut définir des propriétés (des champs non publics), qui doivent être
accessibles via des méthodes publiques getter et setter, suivant des règles de
nommage.
doit être défini explicitement dans un package.
7
17/11/2020
14
Exemple de bean: le bean Compteur
15
Accès aux beans depuis les jsp (1/2)
<jsp:useBean ... /> : déclarer un bean avec un nom (id), une durée de
vie (scope) et le nom de la classe utilisée pour implémenter le bean
(class) de la forme nompackage.NomClasse
<!-- déclaration du bean Compteur (création ou récupération d’un objet de
type Compteur)-->
<jsp: useBean id="cpt" scope =" application " class =" test.Compteur "/>
8
17/11/2020
16
Accès aux beans depuis les jsp (2/2)
17
Exemple: calcul du nombre de visiteur
d’un site
<html >
<head > <title > Accueil</ title > </head >
<body >
<!-- déclaration du bean Compteur (création ou récupération)-->
<jsp: useBean id="cpt" scope =" application " class =" test.Compteur "/>
<!– Lecture de l’attribut valeur de l’objet cpt -->
Valeur initiale: <jsp:getProperty name ="cpt" property ="valeur"/>
<%
// incrémentation du compteur du nombre de visiteurs:
cpt. incremente ();
<!– Lecture de l’attribut valeur de l’objet cpt -->
Nouvelle valeur: <jsp:getProperty name ="cpt" property ="valeur"/>
%>
</body >
</html >
9
17/11/2020
18
Envoie entre pages JSP
19
Partage d’information entre pages JSP
(Exemple: partage d’un bean et d’un type primitif)
Partager un objet
de type Train (un
bean) nommé
PrincipalTR entre
deux pages JSP.
Cet objet survivra
pour toute la durée
de vie du serveur
d’application.
10
17/11/2020
20
Partage d’information entre pages JSP
(Exemple: partage d’un bean et d’un type primitif -1ère méthode)
N’oubliez pas d’importer
Page1.jsp le bean Train dans les
deux pages
Contexte de
l’application
msg (String)
Page2.jsp PrincipalTr
(Train)
21
Partage d’information entre pages JSP
(Exemple: partage d’un bean et d’un type primitif -2ème méthode)
N’oubliez pas d’importer
Page1.jsp le bean Train dans les
deux pages
Contexte de
l’application
msg (String)
Page2.jsp
PrincipalTr
(Train)
11