386 Java EE 6 et GlassFish 3
mélange pas bien avec la seconde: leur mélange produit des applications plus dif-
ciles à maintenir et qui supportent moins bien la montée en charge. Dans la section
"JavaServer Pages" du chapitre précédent, nous avons vu une page JSP qui contenait
à la fois du code Java et des instructions SQL: bien que ce soit techniquement cor-
rect, imaginez la difculté de maintenir une telle page... Elle mélange deux types de
développement différents (celui de concepteur graphique et celui de programmeur
métier) et pourrait nir par utiliser bien plus d’API encore (accès aux bases de don-
nées, appels d’EJB, etc.), par gérer les exceptions ou par effectuer des traitements
métiers complexes. Avec MVC, l’application utilise un couplage faible, ce qui faci-
lite la modication de son aspect visuel ou des règles métiers sous-jacentes sans
pour autant affecter l’autre composante.
Comme le montre la Figure12.1, la partie "modèle" de MVC représente les données
de l’application; la "vue" correspond à l’interface utilisateur et le "contrôleur" gère
la communication entre les deux.
Figure12.1
Le modèle
de conception MVC.
Server
Contrôleur
(FacesServlet)
Modèle
(backing bean)
Vue
(pages XHTML)
Navigateur
Requête HTTP
Réponse HTTP
manipule et redirige
crée et gère
accède
Le modèle est représenté par le contenu, qui est souvent stocké dans une base de
données et afché dans la vue; il ne se soucie pas de l’aspect que verra l’utilisateur.
Avec JSF, il peut être formé de backing beans, d’appels EJB, d’entités JPA, etc.
La vue JSF est la véritable page XHTML (XHTML est réservé aux interfaces web,
mais il pourrait s’agir d’un autre type de vue, comme WML pour les dispositifs
mobiles). Comme au chapitre précédent, une vue fournit une représentation gra-
phique d’un modèle et un modèle peut avoir plusieurs vues pour afcher un livre
sous forme de formulaire ou de liste, par exemple.
Lorsqu’un utilisateur manipule une vue, celle-ci informe un contrôleur des modi-
cations souhaitées. Ce contrôleur se charge alors de rassembler, convertir et valider
les données, appelle la logique métier puis produit le contenu en XHTML. Avec JSF,
le contrôleur est un objet FacesServlet.
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves