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

MVC Discussion :

MVC et bases de donnée ?


Sujet :

MVC

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 30
    Points
    30
    Par défaut MVC et bases de donnée ?
    Bonjour,

    je travaille sur une appli web en java, ma question est, pour repecter le modèle MVC, commen organiser les classes. je m'explique j'ai un formulaire et j'ai une base de donnée avec les memes attributs que le formulaire et une classe javabean (donnée que je veux stocker dans la base). ou je peux mettre le code java pour accès à la base de donnée est ce dans le controlleur (servlet) ou dans une autre clasee et comment je peux faire le lien

    merci,

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    S'agissant d'une application client/serveur, il faut toujours garder en tête que rien de ce qui permet l'accès à la base de données ne doit sortir du coté serveur pour arriver coté client.

    En gros, du coté du serveur, l'ordre à suivre sera
    1. réception du flux de données envoyé par le client
    2. création d'une requête sur base des données de ce flux (et d'autres données propres au serveur, telles que variables de session)
    3. exécution de la requête
    4. utilisation du résultat pour créer un flux d'émission
    5. envoi du flux obtenu vers le client

    et, du coté du client, l'ordre sera
    1. réception du flux de données envoyé par le serveur
    2. création d'objets sur base des données de ce flux
    3. gestion de ces objets (sur base des interventions de l'utilisateur)
    4. (éventuellement) création d'un nouveau flux de données sur base des objets
    5. (éventuellement) envoi de ce nouveau flux vers le serveur

    On observe donc que chaque partie (client et serveur) va fonctionner à peu près selon le schéma MVC qui lui sera propre:

    Coté serveur, le modèle est la base de données, le controleur est la logique permettant de gérer les requêtes et leurs résultat, et leur transformation en données "sécurisantes", et la transmission du flux pourrait être considéré comme la vue.

    Coté client, le modèle est l'arborescence des classes utilisées, le controleur s'occupe de convertir les flux en données et réciproquement, et la vue est l'interface d'utilisation

    Je vais prendre l'exemple "simple" de la connexion d'un utilisateur au serveur:

    L'interface utilisateur demande l'identifiant de l'utilisateur et son mot de passe, et le transmet au serveur.

    Le serveur "remarque" (parce qu'une partie du protocole utilisé le lui permet) qu'il s'agit d'une demande d'accès, utilise l'identifiant de l'utilisateur pour créer la requête de sélection dans la base de données, compare le mot de passe introduit avec celui renvoyé par la requête, et, s'il y a correspondance, enregistre l'utilisateur comme étant identifié, détermine un numéro permettant de le reconnaitre de manière unique (variable de session, par exemple), et envoie ce numéro au client.

    Par la suite, le client renvoie se numéro au serveur chaque fois qu'il souhaite effectuer une action

    A chaque fois que le serveur reçoit des informations émanant d'un client, il vérifie la présence d'une variable de sessions, vérifie les autorisations accordées du fait de la présence (ou de l'absence) et de la valeur de cette variable et décide (ou non) d'accepter le travail demandé
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    Bonjour,


    merci pour votre réponse

    mais mon pb est l'acces à la base de donnée, en fait le controleur (servlet) recupere les parametres et les stockes ds la session
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
            String nom = request.getParameter("nom");
           ....
     
     
            // récuperation de la session
     
            HttpSession session = request.getSession(true);
     
           // Création et instantiation de bean à partir des paramètres
     
            Bean inscription = new Bean();
            inscription.setNom(nom);
            ...
        // Conservation du bean dans la session
            session.setAttribute("formInscription", inscription);

    apres je peux forwarder vers une JSP de confirmation.
    mais mon pb cé comment je peux, dans une autre classe java (servlet par exemple), acceder à ce bean et l'envoyer à la base de donnée.

    jé essayer session.getAttribute("nom") mais ça marche pas


    merci bcp

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Normal, il faut utiliser : session.getAttribute("formInscription") car tu as fait un setAttribute avec la clef "formInscription" .

    Merci d'éviter d'utiliser du langage SMS à l'avenir et de penser à la balise code
    Je ne répondrai à aucune question technique en privé

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/12/2014, 17h39
  2. ASP.NET MVC Changer de base de données cible pour EF
    Par john85 dans le forum ASP.NET MVC
    Réponses: 11
    Dernier message: 20/03/2014, 10h58
  3. [MVC] Exemple Base de données
    Par Kiboumz dans le forum MVC
    Réponses: 6
    Dernier message: 26/02/2014, 10h50
  4. Réponses: 0
    Dernier message: 18/07/2011, 16h52
  5. inserer un document dans la base de donne via mvc asp.net
    Par mvc_dev dans le forum ASP.NET MVC
    Réponses: 3
    Dernier message: 31/01/2011, 13h56

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