IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

MVC besoin d'aide pour comprendre


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Points : 73
    Points
    73
    Par défaut MVC besoin d'aide pour comprendre
    Bonjour, j'aimerais avoir votre aide en ce qui concerne le MVC.
    Donc si j'ai bien compris quand l'utilisateur fait une demande au serveur :
    - Controle ( C ) est la première étape. Sont rôle est de vérifier si les arguments envoyer sont valides et en fonction de ceux-ci on appel le bon modèle. ( Servlet )
    - Modèle ( M ) est la seconde étape c'est la partie qui permet de récupérer et traiter les informations. Cette partie doit pouvoir être utilisé aussi bien par Une application console - web - client riche... ( Correspond au Bean )
    - Vue ( V ) permet d'afficher et mettre en page les informations à destination du client. Je ne me trompe pas ? ( Correspond au JSP )

    Merci de votre aide.

  2. #2
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    C'est correct. A noter que pour faciliter le développement quelques design patterns peuvent faciliter les choses.

    Par exemple en développement web le design front controller est souvent utilisé (par Struts par exemple). Ce design propose d'utiliser une servlet comme point d'entrée générale qui ensuite dispatch la requête sur le bon contrôleur (également une servlet).

    Tu peux en rencontrer d'autres comme le business delegate, inversion de contrôle etc...
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Points : 73
    Points
    73
    Par défaut
    D'accord.
    ftp://ftp-developpez.com/tahe/fichie...webmvcjava.pdf

    Par contre, ici je ne comprend pas. ( page 58 )
    - Contrôleur ( Servlet ) permet donc de vérifier les données. Il fait appel a la couche métier.
    - La couche métier créer un nouvelle objet de type ( dao ).
    - dao permet de communiquer ( insertion - modification etc... avec une base de donnée / ou autre composant ). Ici on va par exemple créer une collection qui contient la liste des utilisateurs.
    - Pour finir le modèle + vue se servent de la collection et objet pour renvoyer un document ( html - image - sons ) au client ?


    Sinon merci beaucoup

  4. #4
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Ton model va souvent te retourner des données c'est clair. Ces données sont nécessaires pour ta vue.

    C'est donc le controleur qui demande au model de lui retourner les données en fonction des paramètres qu'il recoit et ensuite il passe la main à la vue. La vue doit avoir accès aux données retournées par le model dans une des portées (request, session, application)
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Points : 73
    Points
    73
    Par défaut
    Donc ce que j'appel :

    Modèle + Métier + Dao ca correspond en gros à un ou plusieurs Beans qui peuvent être utiliser donc en console etc...


    sinon merci de ton aide

  6. #6
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut Faudrait penser à faire une recherche dans les forums d'abord !
    Bonjour.
    Ce sujet est très intéressant et fondamental mais il a été à maintes reprises sujet à des posts dans les forums de DVP. En voici un que je trouve très complet et pertinent : http://www.developpez.net/forums/sho...d.php?t=341618

    Bonne chance.

  7. #7
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut Une petite clarification...
    Je pense qu'il y a une petite confusion.

    Considérons une application web scindée en trois couches :

    • la couche DAO, pour l'accès aux données
    • la couche métier, le coeur de l'application
    • la couche web, l'interface entre l'application et ses utilisateurs


    Le pattern MVC se situe exclusivement dans la couche web.
    Lorsque vous envoyez une requête à un serveur (via un formulaire HTML, par exemple), les étapes sont les suivantes :

    1. votre controlleur (servlet) contrôle la validité de vos entrées
    2. si vos entrées sont valides, votre controlleur fait appel à la couche métier
    3. pour assurer le service demandé par le controlleur, la couche métier peut éventuellement faire appel à la couche DAO
    4. le controlleur place ensuite les informations retournées par la couche métier dans un bean (qui fait partie du modèle)
    5. le controlleur vous redirige alors vers une vue (page JSP, document PDF, ...) qui présente dynamiquement les informations du modèle


    Il ne faut donc pas confondre modèle et couche métier...
    On appelle modèle les beans qui vont vous servir à stocker les données retournées par votre couche métier.
    La vue n'est qu'un moyen de présenter dynamiquement les données d'un modèle.
    Une vue n'est d'aucune utilité sans un modèle associé (c'est d'ailleurs pour cela que les Controller Spring retournent un ModelAndView comme résultat).

    J'espère que ça vous aidera à y voir plus clair...
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

  8. #8
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Je suis pas d'accord avec toi aJavaDevelopper : MVC est une architecture globale de toute l'application, et non pas seulement du web tiers.

    Citation Envoyé par aJavaDevelopper
    On appelle modèle les beans qui vont vous servir à stocker les données retournées par votre couche métier.
    Citation Envoyé par aJavaDevelopper
    le controlleur place ensuite les informations retournées par la couche métier dans un bean (qui fait partie du modèle)
    Pour moi, le Model = L'ensemble des données métier traitées par l'application ainsi que les traitements qui s'appliquent à eux.
    De plus, la couche métier retourne des beans (DTOs ou encore DTOs composites par exemple) elle aussi, non ?

    Je n'ai aucune envie de déclencher un débat sur ce thème.
    Je t'invite alors à faire une recherche sur ce thème, ou encore à regarder ces articles par exemple :
    http://java.sun.com/blueprints/patterns/MVC-detailed.html.
    http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html : Décrit le pattern MVC tel qu'il a été définir pour SmallTalk-80 par XeroxParc.

    Voilà.@+.

  9. #9
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut Erreur
    J'admets mon erreur d'interprétation de ce qu'est le modèle.

    En effet, après quelques recherches ciblées, il apparaît que le modèle encapsule non seulement l'état (ça, j'avais compris) mais aussi le comportement de l'application (cet aspect là m'avais échappé), ce comportement pouvant inclure l'accès à des données.

    Donc, si j'ai bien compris,
    • les controlleurs (C) et les vues (V) constituent la couche web
    • le modèle (M) recouvre deux couches : la couche métier et la couche DAO


    Pardon pour l'erreur d'interprétation...

    @djo.mos : merci pour ta remarque
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Points : 73
    Points
    73
    Par défaut
    D'accord merci pour vos répoonses, je voi bcp plus clair...

  11. #11
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    aJavaDeveloper: T'es mon nouvel héros. C'est très très courageux ce que tu as fait.

  12. #12
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut Lol
    Lol, lorsque l'on commet une erreur, il faut savoir le reconnaître...

    Je suis là autant pour apprendre que pour aider les autres...
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour comprendre un test dans un IF
    Par dante33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/01/2008, 21h27
  2. besoin d'aide pour comprendre Example zope
    Par julien.63 dans le forum Zope
    Réponses: 3
    Dernier message: 22/08/2007, 15h41
  3. besoin d'aide pour comprendre un exo simple de java
    Par chadel dans le forum Langage
    Réponses: 2
    Dernier message: 16/03/2007, 23h27
  4. [MySQL] besoin d'aide pour comprendre les injections sql
    Par cassy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/01/2007, 14h21
  5. Besoin d aide pour comprendre un code
    Par litlebasic dans le forum Delphi
    Réponses: 4
    Dernier message: 22/06/2006, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo