
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