Formation MVC

1/20
100%

<!-- Slide number: 1 -->

MVC

Principes de base

par: M.Abbou

<!-- Slide number: 2 -->

Plan

Introduction

MVC

MVC-Objectifs

Architecture MVC

Architecture MVC II

MVC-Web

MVC-Web 1tier: Exp d’Implémentation

MVC-Web 3tier: Exp d’Implémentation

Formation MVC-EMSI

05/06/2009

2

<!-- Slide number: 3 -->

Introduction

Le Model-View-Controller (MVC) est un modèle de conception logicielle largement répandu dans le monde des outils de développements.(J2EE, Spring, Struts,JSF,…)

Créé dans les années 1980 par Xerox PARC pour Smalltalk-80.

MVC est un Design Pattern (Patron de conception) indépendant des langages de programmation.

 L'application est divisée en trois composants fondamentaux: le modèle, la vue et le contrôleur. Chacun de ces composants tient un rôle bien défini.

Formation MVC-EMSI

05/06/2009

3

<!-- Slide number: 4 -->

MVC

Le Modèle-Vue-Contrôleur organise l'interface Homme-machine d'une application logicielle en :

un modèle (objet métier, modèle de données);

une vue (présentation, interface utilisateur);

un contrôleur (logique de contrôle, gestion des événements, traitement).

Formation MVC-EMSI

05/06/2009

4

<!-- Slide number: 5 -->

MVC-Objectifs

Séparation entre

Les données

Publicité

La présentation

Les traitements

Meilleur réutilisabilité du code

Optimise les temps de développement ;

Facilite la maintenance ;

Développement horizontal.

Formation MVC-EMSI

05/06/2009

5

<!-- Slide number: 6 -->

Architecture MVC

![](Picture2.jpg)

Formation MVC-EMSI

05/06/2009

6

<!-- Slide number: 7 -->

Architecture MVC II

![](Picture3.jpg)

Formation MVC-EMSI

05/06/2009

7

<!-- Slide number: 8 -->

Architecture MVC II

L’utilisateur émet une requête.

Le contrôleur intercepte la requête de l’utilisateur.

Le contrôleur détermine quelle partie du modèle est concernée et quelle vue y est associée.

Le modèle traite les interactions avec les données, applique les règles métier et renvoie les données au contrôleur.

Le contrôleur sélectionne la vue et lui renseigne les données.

La vue présente les données à l’utilisateur.

Formation MVC-EMSI

05/06/2009

8

<!-- Slide number: 9 -->

MVC-Web

Une application web a souvent une architecture 3tier :

La couche [dao] s'occupe de l'accès aux données, le plus souvent des données persistantes au sein d'un SGBD

La couche [métier] implémente les algorithmes " métier " de l'application.

La couche [interface utilisateur] qui est l'interface (graphique souvent), permet à l'utilisateur de piloter l'application et d'en recevoir des informations.

![](Picture2.jpg)

Publicité

Formation MVC-EMSI

05/06/2009

9

<!-- Slide number: 10 -->

MVC-Web

La communication va de la gauche vers la droite :

L'utilisateur fait une demande à la couche [interface utilisateur]

Cette demande est mise en forme par la couche [interface utilisateur] et transmise à la couche [métier]

Si pour traiter cette demande, la couche [métier] a besoin des données, elle les demande à la couche [dao]

Chaque couche interrogée rend sa réponse à la couche de gauche jusqu'à la réponse finale à l'utilisateur.

Formation MVC-EMSI

05/06/2009

10

<!-- Slide number: 11 -->

MVC-Web

L'architecture MVC (Modèle – Vue – Contrôleur) prend place dans la couche [interface utilisateur] lorsque celle-ci est une interface web :

le client fait une demande au contrôleur. Celui-ci voit passer toutes les demandes des clients. C'est la porte d'entrée de l'application. C'est le C de MVC.

Le contrôleur C traite cette demande. Il peut utiliser les services de la couche métier si il en a besoin.

![](Picture2.jpg)

Formation MVC-EMSI

05/06/2009

11

<!-- Slide number: 12 -->

MVC-Web

Le contrôleur choisit la réponse (= vue) à envoyer au client

Choisir la réponse à envoyer au client nécessite plusieurs étapes :

choisir l'objet qui va générer la réponse. C'est ce qu'on appelle la vue V, le V de MVC. Ce choix dépend en général du résultat de l'exécution de l'action demandée par l'utilisateur.

lui fournir les données dont il a besoin pour générer cette réponse. En effet, celle-ci contient le plus souvent des informations calculées par le contrôleur. Ces informations forment ce qu'on appelle le modèle M de la vue, le M de MVC.

Formation MVC-EMSI

05/06/2009

12

<!-- Slide number: 13 -->

MVC-Web

Le contrôleur C demande à la vue choisie de s'afficher. Il s'agit le plus souvent de faire exécuter une méthode particulière de la vue V chargée de générer la réponse au client.

Le générateur de vue V utilise le modèle M préparé par le contrôleur C pour initialiser les parties dynamiques de la réponse qu'il doit envoyer au client.

La réponse est envoyée au client. La forme exacte de celle-ci dépend du générateur de vue. Ce peut être un flux HTML, PDF, Excel, ...

Formation MVC-EMSI

05/06/2009

13

Publicité

<!-- Slide number: 14 -->

MVC-Web: Implémentation

Pour implémenter le modèle MVC dans une application Web :

Le contrôleur est assuré par une servlet unique. C'est le C de MVC.

Toutes les requêtes du client contiennent un attribut action, par exemple (http://.../appli?action=liste)

Selon la valeur de l'attribut action, la servlet fait exécuter une méthode interne de type [doAction(...)].

La méthode [doAction] exécute l'action demandée par l'utilisateur. Pour cela, si besoin est, elle utilise la couche [métier].

Formation MVC-EMSI

05/06/2009

14

<!-- Slide number: 15 -->

MVC-Web: Implémentation

Selon le résultat de l'exécution, la méthode [doAction] décide d'une page JSP à afficher. C'est la vue V du modèle MVC.

La page JSP a des éléments dynamiques qui doivent être fournis par la servlet. La méthode [doAction] va fournir ces éléments. C'est le modèle de la vue, le M de MVC. Ce modèle est placé le plus souvent dans le contexte de la requête (request.setAttribute(" clé ", "valeur "))

La méthode [doAction] fait afficher la vue en transmettant le flux d'exécution à la page JSP choisie. Elle utilise pour cela, une instruction du genre : getServletContext().getRequestDispatcher(" pageJSP ").forward(request, response)

Formation MVC-EMSI

05/06/2009

15

<!-- Slide number: 16 -->

MVC-Web: Implémentation

De façon générale, une application web MVC à base de servlets et pages JSP a l'architecture suivante :

Ce modèle d'architecture (Design Pattern) MVC est appelée le modèle " Front Controller " ou encore modèle à contrôleur unique: une servlet unique traite toutes les requêtes de tous les utilisateurs.

![](Picture2.jpg)

Formation MVC-EMSI

05/06/2009

16

<!-- Slide number: 17 -->

MVC-Web: Implémentation

Pour une application Web simple, cette architecture est suffisante:

une seule servlet joue le rôle du contrôleur.

deux servlets de deux applications différentes :

ont le même mécanisme pour déterminer quelle méthode [doAction] il faut exécuter pour traiter l'action demandée par l'utilisateur.

ne diffèrent que par le contenu de ces méthodes [doAction].

Factoriser le traitement dans une servlet générique.

Déléguer le traitement à des classes externes.

Faire le lien entre l'action demandée par l'utilisateur et la classe qui doit la traiter à l'aide d'un fichier de configuration (Struts, Spring, …)

Formation MVC-EMSI

05/06/2009

17

Publicité

<!-- Slide number: 18 -->

Plan

Introduction

MVC

MVC-Objectifs

Architecture MVC

Architecture MVC II

MVC-Web

MVC-Web: Implémentation

MVC-Web 1tier: Exp d’Implémentation

MVC-Web 3tier: Exp d’Implémentation

Formation MVC-EMSI

05/06/2009

18

<!-- Slide number: 19 -->

MVC-Web 1tier: Exp d’Implémentation

Voir le TP 1

Formation MVC-EMSI

05/06/2009

19

<!-- Slide number: 20 -->

Plan

Introduction

MVC

MVC-Objectifs

Architecture MVC

Architecture MVC II

MVC-Web

MVC-Web: Implémentation

MVC-Web 1tier: Exp d’Implémentation

MVC-Web 3tier: Exp d’Implémentation

Formation MVC-EMSI

05/06/2009

20

Formation MVC

Software Design Patterns · notes

Voir tous les documents en génie logiciel

<!-- Slide number: 1 -->

MVC

Principes de base

par: M.Abbou

<!-- Slide number: 2 -->

Plan

Introduction

MVC

MVC-Objectifs

Architecture MVC

Architecture MVC II

MVC-Web

MVC-Web 1tier: Exp d’Implémentation

MVC-Web 3tier: Exp d’Implémentation

Formation MVC-EMSI

05/06/2009

2

<!-- Slide number: 3 -->

Introduction

Le Model-View-Controller (MVC) est un modèle de conception logicielle largement répandu dans le monde des outils de développements.(J2EE, Spring, Struts,JSF,…)

Créé dans les années 1980 par Xerox PARC pour Smalltalk-80.

MVC est un Design Pattern (Patron de conception) indépendant des langages de programmation.

 L'application est divisée en trois composants fondamentaux: le modèle, la vue et le contrôleur. Chacun de ces composants tient un rôle bien défini.

Formation MVC-EMSI

05/06/2009

3

<!-- Slide number: 4 -->

MVC

Le Modèle-Vue-Contrôleur organise l'interface Homme-machine d'une application logicielle en :

un modèle (objet métier, modèle de données);

une vue (présentation, interface utilisateur);

un contrôleur (logique de contrôle, gestion des événements, traitement).

Formation MVC-EMSI

05/06/2009

4

<!-- Slide number: 5 -->

MVC-Objectifs

Séparation entre

Les données

Publicité

La présentation

Les traitements

Meilleur réutilisabilité du code

Optimise les temps de développement ;

Facilite la maintenance ;

Développement horizontal.

Formation MVC-EMSI

05/06/2009

5

<!-- Slide number: 6 -->

Architecture MVC

![](Picture2.jpg)

Formation MVC-EMSI

05/06/2009

6

<!-- Slide number: 7 -->

Architecture MVC II

![](Picture3.jpg)

Formation MVC-EMSI

05/06/2009

7

<!-- Slide number: 8 -->

Architecture MVC II

L’utilisateur émet une requête.

Le contrôleur intercepte la requête de l’utilisateur.

Le contrôleur détermine quelle partie du modèle est concernée et quelle vue y est associée.

Le modèle traite les interactions avec les données, applique les règles métier et renvoie les données au contrôleur.

Le contrôleur sélectionne la vue et lui renseigne les données.

La vue présente les données à l’utilisateur.

Formation MVC-EMSI

05/06/2009

8

<!-- Slide number: 9 -->

MVC-Web

Une application web a souvent une architecture 3tier :

La couche [dao] s'occupe de l'accès aux données, le plus souvent des données persistantes au sein d'un SGBD

La couche [métier] implémente les algorithmes " métier " de l'application.

La couche [interface utilisateur] qui est l'interface (graphique souvent), permet à l'utilisateur de piloter l'application et d'en recevoir des informations.

![](Picture2.jpg)

Publicité

Formation MVC-EMSI

05/06/2009

9

<!-- Slide number: 10 -->

MVC-Web

La communication va de la gauche vers la droite :

L'utilisateur fait une demande à la couche [interface utilisateur]

Cette demande est mise en forme par la couche [interface utilisateur] et transmise à la couche [métier]

Si pour traiter cette demande, la couche [métier] a besoin des données, elle les demande à la couche [dao]

Chaque couche interrogée rend sa réponse à la couche de gauche jusqu'à la réponse finale à l'utilisateur.

Formation MVC-EMSI

05/06/2009

10

<!-- Slide number: 11 -->

MVC-Web

L'architecture MVC (Modèle – Vue – Contrôleur) prend place dans la couche [interface utilisateur] lorsque celle-ci est une interface web :

le client fait une demande au contrôleur. Celui-ci voit passer toutes les demandes des clients. C'est la porte d'entrée de l'application. C'est le C de MVC.

Le contrôleur C traite cette demande. Il peut utiliser les services de la couche métier si il en a besoin.

![](Picture2.jpg)

Formation MVC-EMSI

05/06/2009

11

<!-- Slide number: 12 -->

MVC-Web

Le contrôleur choisit la réponse (= vue) à envoyer au client

Choisir la réponse à envoyer au client nécessite plusieurs étapes :

choisir l'objet qui va générer la réponse. C'est ce qu'on appelle la vue V, le V de MVC. Ce choix dépend en général du résultat de l'exécution de l'action demandée par l'utilisateur.

lui fournir les données dont il a besoin pour générer cette réponse. En effet, celle-ci contient le plus souvent des informations calculées par le contrôleur. Ces informations forment ce qu'on appelle le modèle M de la vue, le M de MVC.

Formation MVC-EMSI

05/06/2009

12

<!-- Slide number: 13 -->

MVC-Web

Le contrôleur C demande à la vue choisie de s'afficher. Il s'agit le plus souvent de faire exécuter une méthode particulière de la vue V chargée de générer la réponse au client.

Le générateur de vue V utilise le modèle M préparé par le contrôleur C pour initialiser les parties dynamiques de la réponse qu'il doit envoyer au client.

La réponse est envoyée au client. La forme exacte de celle-ci dépend du générateur de vue. Ce peut être un flux HTML, PDF, Excel, ...

Formation MVC-EMSI

05/06/2009

13

Publicité

<!-- Slide number: 14 -->

MVC-Web: Implémentation

Pour implémenter le modèle MVC dans une application Web :

Le contrôleur est assuré par une servlet unique. C'est le C de MVC.

Toutes les requêtes du client contiennent un attribut action, par exemple (http://.../appli?action=liste)

Selon la valeur de l'attribut action, la servlet fait exécuter une méthode interne de type [doAction(...)].

La méthode [doAction] exécute l'action demandée par l'utilisateur. Pour cela, si besoin est, elle utilise la couche [métier].

Formation MVC-EMSI

05/06/2009

14

<!-- Slide number: 15 -->

MVC-Web: Implémentation

Selon le résultat de l'exécution, la méthode [doAction] décide d'une page JSP à afficher. C'est la vue V du modèle MVC.

La page JSP a des éléments dynamiques qui doivent être fournis par la servlet. La méthode [doAction] va fournir ces éléments. C'est le modèle de la vue, le M de MVC. Ce modèle est placé le plus souvent dans le contexte de la requête (request.setAttribute(" clé ", "valeur "))

La méthode [doAction] fait afficher la vue en transmettant le flux d'exécution à la page JSP choisie. Elle utilise pour cela, une instruction du genre : getServletContext().getRequestDispatcher(" pageJSP ").forward(request, response)

Formation MVC-EMSI

05/06/2009

15

<!-- Slide number: 16 -->

MVC-Web: Implémentation

De façon générale, une application web MVC à base de servlets et pages JSP a l'architecture suivante :

Ce modèle d'architecture (Design Pattern) MVC est appelée le modèle " Front Controller " ou encore modèle à contrôleur unique: une servlet unique traite toutes les requêtes de tous les utilisateurs.

![](Picture2.jpg)

Formation MVC-EMSI

05/06/2009

16

<!-- Slide number: 17 -->

MVC-Web: Implémentation

Pour une application Web simple, cette architecture est suffisante:

une seule servlet joue le rôle du contrôleur.

deux servlets de deux applications différentes :

ont le même mécanisme pour déterminer quelle méthode [doAction] il faut exécuter pour traiter l'action demandée par l'utilisateur.

ne diffèrent que par le contenu de ces méthodes [doAction].

Factoriser le traitement dans une servlet générique.

Déléguer le traitement à des classes externes.

Faire le lien entre l'action demandée par l'utilisateur et la classe qui doit la traiter à l'aide d'un fichier de configuration (Struts, Spring, …)

Formation MVC-EMSI

05/06/2009

17

Publicité

<!-- Slide number: 18 -->

Plan

Introduction

MVC

MVC-Objectifs

Architecture MVC

Architecture MVC II

MVC-Web

MVC-Web: Implémentation

MVC-Web 1tier: Exp d’Implémentation

MVC-Web 3tier: Exp d’Implémentation

Formation MVC-EMSI

05/06/2009

18

<!-- Slide number: 19 -->

MVC-Web 1tier: Exp d’Implémentation

Voir le TP 1

Formation MVC-EMSI

05/06/2009

19

<!-- Slide number: 20 -->

Plan

Introduction

MVC

MVC-Objectifs

Architecture MVC

Architecture MVC II

MVC-Web

MVC-Web: Implémentation

MVC-Web 1tier: Exp d’Implémentation

MVC-Web 3tier: Exp d’Implémentation

Formation MVC-EMSI

05/06/2009

20