Développement Web

Transcription

Développement Web
Développement Web - JSP + EL
Développement Web - JSP + EL
Jean-Michel Richer
[email protected]
http://www.info.univ-angers.fr/pub/richer
M2 Informatique 2010-2011
1 / 32
Développement Web - JSP + EL
Plan
Plan
1
Préambule
2
Rappel concernant les JavaBeans
3
Mise en pratique
4
Bibliographie
2 / 32
Développement Web - JSP + EL
Préambule
Préambule
Préambule
3 / 32
Développement Web - JSP + EL
Préambule
Utilisation de la JSP EL
Objectifs
• découvrir et utiliser JSP (Expression Language)
• comparaison avec les tags JSP de base
4 / 32
Développement Web - JSP + EL
Préambule
A quoi sert JSP EL ?
Definition (JSP EL)
syntaxe adaptée afin de manipuler les données membres des
JavaBeans ainsi que des containers tels les tableaux, listes,
mappings qui sont stockés en tant qu’attributs d’une application
web
5 / 32
Développement Web - JSP + EL
Préambule
Avantages de JSP EL
Avantages de JSP EL
• plus élégant et compact que les balises JSP
• on peut accèder à des propriétés en cascade comme on
peut le faire en Java
list.getClient(10).getName();
• si un objet n’existe pas ou son attribut n’existe pas il est
remplacé par la chaine vide
6 / 32
Développement Web - JSP + EL
Préambule
Inconvénient de JSP EL
Inconvénient de JSP EL
• les balises JSP EL ne créent pas de JavaBean s’il n’a pas
déjà été créé dans un attribut.
• cependant, lorsque l’on utilise le modèle MVC, c’est le
Servlet qui crée les Beans
7 / 32
Développement Web - JSP + EL
Préambule
Exemple comparatif
Code JSP
1
2
3
4
5
6
7
8
9
10
11
12
13
<jsp:useBean id="customer" scope="session"
class="com.commands.model.Customer" />
Welcome
<jsp:getProperty name="customer" property="firstName" />
&nbsp;
<jsp:getProperty name="customer" property="lastName" />
Hello <%= customer.getFirstName() %> <%= customer.getLastName() %>
<%
out.println(customer.getFirstName()+" "+customer.getLastName());
%>
8 / 32
Développement Web - JSP + EL
Préambule
Exemple comparatif
Code JSP EL
1 <jsp:useBean id="customer" scope="session"
2
class="com.commands.model.Customer" />
3
4 Welcome ${customer.firstName} &nbsp;
5
${customer.lastName}
6
7
9 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Rappel concernant les JavaBeans
Rappel concernant les
JavaBeans
10 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
JavaBean
Definition (JavaBean ou Bean)
Un JavaBean est une classe Java qui respecte 3 conditions :
• possède un constructeur sans arguments dont le but est
d’initialiser
• les données membres qui ne sont jamais publiques
• et qui sont accédées au travers de getters et setters
• enfin, on peut éventuellement le sérialiser
11 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Enterprise JavaBean
Enterprise JavaBean
Un Enterpeise JavaBean (EJB) est un JavaBean beaucoup
plus complexe à coder
12 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Exemple de JavaBean
Code JavaBean
1 import java.io.Serializable;
2
3 class Person implements Serializable {
4
protected String name;
5
protected boolean male;
6
7
public Person() {
8
name="";
9
male=true;
10
}
11
public void setName(String name) {
12
13
this.name=name;
14
}
15
16
public void setMale(boolean male) {
17
this.male=male;
18
}
19
20
public String getName() {
21
return name;
22
}
23
24
public boolean isMale() {
25
return male;
26
}
27 }
13 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Accès à un attribut
Accès à un attribut
• on utilise ${ } afin d’accéder à un attribut simple (String,
List, Date, ...)
• on recherche l’attribut dans les portées (scope) : page,
request, session et application
14 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Accès à un attribut
accès à un attribut
1
2
3
4
5
6
7
8
<!-- Code Servlet -->
Date today=new Date();
request.setAttribute("today", today);
<!-- Code JSP EL dans pase JSP -->
<!-- no need to define a Bean -->
today is ${today}
15 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Utiliser l’opérateur .
L’opérateur .
• permet d’accéder à une donnée membre d’un attribut
• on peut spécifier la portée en début d’attribut : ex.
pageScope, requestScope, sessionScope,
applicationScope
16 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Utiliser l’opérateur .
Utilisation de l’opérateur .
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- Code Servlet-->
Customer c=new Customer();
session.setAttibute("customer", c);
<!-- Code JSP -->
Hello <%= customer.getAddress().getStreetName() %>
<!-- Code JSP EL -->
Hello ${sessionScope.customer.address.streetName}
17 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Utiliser l’opérateur [ ]
L’opérateur [ ]
• permet d’accéder aux éléments des containers (tableau,
liste, mapping)
• on spécifie l’index (entier ou chaine)
18 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Utiliser l’opérateur [ ]
Utilisation de l’opérateur [ ]
1
2
3
4
5
6
7
<!-- Code Servlet -->
String colors[]= { "blue", "white", "red" };
request.setAttribute("frenchFlagColors", colors);
<!-- Code JSP EL -->
${frenchFlagColors[0]}
${frenchFlagColors["1"]}
19 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Utiliser la portée param
La portée param
• permet d’accéder aux éléments de formulaire
• sous forme de donnée membre et tableau
20 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Utiliser la portée param
Utilisation de param
1
2
3
4
5
6
7
8
<!-- Code HTML -->
<form>
<label>first name:</label>
<input type="text" name="firstName" />
</form>
<!-- Code JSP -->
Hello ${param.firstName}
21 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Utiliser la portée initParam
La portée initParam
• permet d’accéder aux éléments du fichier web.xml
22 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Utiliser initParam
Utilisation de initParam
1
2
3
4
5
6
7
8
9
10
<!-- fichier web.xml -->
<context-param>
<param-name>emailAdmin</param-name>
<param-value>[email protected]</param-value>
</context-param>
<!-- Code JSP EL -->
Please email to ${initParam.emailAdmin}
23 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Opérateurs EL
Opérateur EL
EL permet d’utiliser les opérateurs arithmétiques, logiques et
de comparaison :
• arithmétiques : + − ∗/%
• logiques : && || and or not
• comparaison : ==, !=, eq, ne, lt, gt, le, ge, <=, >=
24 / 32
Développement Web - JSP + EL
Rappel concernant les JavaBeans
Opérateurs EL
Utilisation des opérateurs arithmétiques et logiques
1
2
3
4
5
6
${1+1}
${120.3 * 4}
${ "s1" eq "s1" }
${3 lt 4}
${("s1" != "s1") or (4 >= 3)}
25 / 32
Développement Web - JSP + EL
Mise en pratique
Mise en pratique
Mise en pratique
26 / 32
Développement Web - JSP + EL
Mise en pratique
Exemple 1
EL - Project - jspel project
Sous Eclipse créer un projet nommé jspel project.jsp
27 / 32
Développement Web - JSP + EL
Mise en pratique
Exemple 1
EL - Form - index.jsp
Créer une page index.jsp qui contient un formulaire qui permet
de saisir les données suivantes :
• first name
• last name
• salary
28 / 32
Développement Web - JSP + EL
Mise en pratique
Exemple 1
EL - Servlet - Control.java
créer un Servlet qui traite les données d’un formulaire et
• crée un objet client (Person) qui sera envoyé en request
• remplit les données membres avec les données saisies
• redirige (dispatch) l’affichage vers un page view.jsp si tous
les champs sont définis sinon retourne sur le formulaire de
saisie
29 / 32
Développement Web - JSP + EL
Mise en pratique
Exemple 1
EL - View - view.jsp
créer une page view.jsp qui utilise EL et affiche
• le nom et prénom de la personne
• son salaire actuel
• son nouveau salaire qui sera augmenté de 20%
30 / 32
Développement Web - JSP + EL
Bibliographie
Bibliographie
Bibliographie
31 / 32
Développement Web - JSP + EL
Bibliographie
Bibliographie, sitographie
• Développement Web avec J2EE, O’ Reilly, Eric Sarrion,
Paris, 2005, ISBN 2-35402-140-2
• Java Servlets and JSP, Joel Murach, Andrea Steelman,
Murach, 2nd Edition, 2008, ISBN 9781890774448
32 / 32