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

Développement Web en Java Discussion :

Architecture développement web.. Model 1? Model2? Framework?


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut Architecture développement web.. Model 1? Model2? Framework?
    Bonjour,

    Cela fait plusieurs jours que j’essaye de trouver une architecture web correcte pour développer un site web avec JSP/Servlets/Tomcat.. Et je commence à avoir fait un peu le tour mais je n’ai toujours pas répondu à toutes mes questions.

    J’ai lu que les architectures «Model 1 architectures» étaient mauvaises à utiliser quand le projet est grand. Je pensais justement utiliser cette approche, le site comporte beaucoup de formulaires et pas mal de pages (50 écran environ).
    J’ai fait des tests avec le «Model 2 architectures» et je trouve çà un peu compliqué et dans les fichiers jsp j’ai quand même pas mal de tag jsp <% %>

    L’application que je doit développer doit pouvoir évoluer mais seule une personne la fera évoluer (donc avec toutes les compétences métier design/prog)

    Mes questions sont les suivantes :
    - Le «Model 1 architectures» est-il dépassé et à proscrire même pour les projets de taille moyenne développé par une seule personne ?
    - Dans mes tests avec le «Model 2 architectures» je n’ai pas utilisé les javabeans, est ce que je peut utiliser des objets générés par mon servlet directement ou je «casse» le mvc ? (En fait, je récupère un objet qui contient le résultat d’un « SELECT * » d’une BDD donc je vois pas comment le faire avec des javabeans)
    - Les frameworks comme struts peuvent t’il correspondre à l’architecture que je cherche ?
    - Avec les framework est ce que l’on écrit du HTML ou seulement des tag jsp ? et le respect des standard web?
    - Le «Model 2 architectures» doit-il être utilisé avec une seule et unique Servlet (MVC2) ?
    - Savez vous ou je peux trouver un exemple complet de «Model 2 architectures» (avec une base de donnée et un site totalement dynamique ?)
    - et au passage, avec Tomcat comment tester des servlets sans redémarrer Tomcat ?

    Merci,
    Cédric

  2. #2
    Membre chevronné
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Par défaut
    Le «Model 1 architectures» est-il dépassé et à proscrire même pour les projets de taille moyenne développé par une seule personne ?
    On recommande le modèle 2 pour des projets relativement important (toute la difficulté étant de cerner la frontière). Personnellement, j'applique ce modèle même pour des petits projets, un peu par habitude, mais aussi parce que ca améliore la structure de l'application.
    Le modèle 2 permet une meilleure séparation entre logique métier et présentation, et permet de mieux séparer les responsabilités au sein d'un projet: tu peux affecter un web designer sur la réal des jsp (à condition de n'utiliser que des taglibs) et des développeurs pour la partie controlleur (actions, actionforms) et modèle (accès aux données)).
    En tout cas, pour un projet comportant 50 pages différentes, pas d'hésitation, même si tu es seul, tu es dans la cible! tu verras, l'application sera plus structurée et plus maintenable.

    Dans mes tests avec le «Model 2 architectures» je n’ai pas utilisé les javabeans, est ce que je peut utiliser des objets générés par mon servlet directement ou je «casse» le mvc ? (En fait, je récupère un objet qui contient le résultat d’un « SELECT * » d’une BDD donc je vois pas comment le faire avec des javabeans)
    si tu récupère un resultset JDBC directement dans une JSP c'est mal! Le javabean sert à stocker l'état du formulaire et a formaliser les données issue de la couche métier en données de présentation. Il suffit simplement de mapper le résultat du requête JDBC sur un ou plusieurs objets. C'est du mapping objet/relationnel, c'est peut être ca qui t'embêtes ?

    Les frameworks comme struts peuvent t’il correspondre à l’architecture que je cherche ?
    ben oui : Struts, mais aussi JSF, Spring MVC, Webwork, etc... sont justement des frameworks implémentant le modèle MVC2 (ou "model 2 architecture").

    Avec les framework est ce que l’on écrit du HTML ou seulement des tag jsp ? et le respect des standard web?
    en utilisant les tag-libs, tu peux écrire la plupart des pages JSP sans un seul gramme de HTML, javascript ou de code JAVA. Dans certains cas tu ne pourras pas, tu peux mélanger sans problème html et tags jsp. Les frameworks web apporte des bibliothèques étendues de tags très intéressantes (notament myfaces+tomahawk, l'implémentation Apache de jsf). Le code généré par les tag-libs respectent les normes W3C (HTML 4 et XHTML 1.0 il me semble)

    Le «Model 2 architectures» doit-il être utilisé avec une seule et unique Servlet (MVC2) ?
    Oui, sinon c'est du modèle 1, huhu

    Savez vous ou je peux trouver un exemple complet de «Model 2 architectures» (avec une base de donnée et un site totalement dynamique ?)
    ce site propose une application implémentée avec différentes combinaisons de framework et "kick-ass" technologies : https://appfuse.dev.java.net/#screenshot. Tu as les sources + les live demos pour jouer avec !

    et au passage, avec Tomcat comment tester des servlets sans redémarrer Tomcat ?
    tu peux développer ? tu veux parler du mode debug sans doute ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    Merci beaucoup pour ta réponse, çà m’éclaire beaucoup !

    Effectivement le model 2 semble plus adapté au projet mais comme je n’ai pas beaucoup de connaissances dans le développement web en Java évidement j’ai encore quelques problèmes à faire quelque chose de propre..

    si tu récupère un resultset JDBC directement dans une JSP c'est mal! Le javabean sert à stocker l'état du formulaire et a formaliser les données issue de la couche métier en données de présentation. Il suffit simplement de mapper le résultat du requête JDBC sur un ou plusieurs objets. C'est du mapping objet/relationnel, c'est peut être ca qui t'embêtes ?
    En fait je récupère un objet (Vecteur) et ensuite selon la page j’ai une «organisation» et j’affiche les infos en conséquences.. Mon code ressemble à çà :
    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <%@ page import="java.util.Vector" %>
    <%@ page import="java.util.HashMap" %>
    <%@ page import="java.util.Enumeration" %>
    <%
     
    Vector v = (Vector)request.getAttribute("toto");
     
    %>
    <form method="post" action="MaServlet">
    <%
     
    Vector vTemp;
    HashMap hmTemp;
     
    if(v.size()>0) {
    %>
     
    <table border="1">
    <tr>
    <%
     
    vTemp = (Vector)v.get(0);
     
    for(int i=0;i<vTemp.size();i++) {
    	%><td><%= (String)vTemp.get(i) %></td><%
    }
     
     
    %>
    </tr>
    ...
    Le vecteur récupéré contient des informations provenant de ma base de données (j’ignore évidement le nombre d’enregistrements retournés). Donc avec des javabeans c’est apparemment possible, je suis aussi preneur d’un exemple Mais sinon je vais essayer de trouver un exemple sur le net.

    Oui, sinon c'est du modèle 1, huhu
    En fait dans le tutoriels Java jmd à partir des cours pour apprendre Java : http://java.developpez.com/cours/
    Il est expliqué qu’il existe le «modèle MVC type 1» et le «modèle MVC type 2», je croyait que c’était deux possibilités du «modèle 2» (un peu compliqué tout çà)
    Donc en fait la question revient à demander si dans le cadre d’un développement «model 2» toutes les actions doivent être gérées par un seul servlet ? avec mes 50 écran je vais me retrouver avec une servlet énorme nan ?

    Merci pour ton aide,
    Cédric

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    Pour les Javabeans, je vient de lire ceci:

    You cannot use <jsp:getProperty> to retrieve the values of an indexed property.

    Donc si je comprend bien je suis obligé de récupérer dans mon cas un vecteur via mon bean. c'est exact?

    donc j'aurais un bean avec setMonVecteur et getMonVecteur?

    Mais du coup je suis obligé d'utiliser les tags <% %> comme je le fait actuellement non?

    Merci,
    Cédric

  5. #5
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Bonjour,
    l'interet du modele MVC2 est d'avoir un seul point d'entree dans ton application.
    Par exemple pour la gestion de la securite ca devient tres interessant d'avoir un seul point d'entree et ca evite dans chaque page JSP ou action,... d'appeler une methode de gestion de securite.

    Je te conseille fortement d'utiliser struts 1.x (struts 2.x gere aussi MVC2 mais je ne le connais pas assez pour me permettre de te le conseiller), car lui permet de gerer MVC2.

    Ca t'evitera de reinventer la roue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Donc en fait la question revient à demander si dans le cadre d’un développement «model 2» toutes les actions doivent être gérées par un seul servlet ? avec mes 50 écran je vais me retrouver avec une servlet énorme nan ?
    Ta remarque est pertienet et Struts t'apportera un esolution a ce probleme. Tu as uen servlet Action Struit qui est a l'ecoute de toute url se terminant par .do (en fct de la config)) et te dispatchera sur la bonne classe Action (que tu aurras defini dans un fichier xml struts-config)

    Dans struts-config tu mappe tes urls avec tes Actions Java a executer
    ex : monurl.do te permettra d'appeler la classe Action MonUrlAction

    Struts se charge entre autres de populer ton formulaire HTLML dans un objet JAVA ActionForm. Du coup tu ne te soucies pas de recuperer les parametres du formulaire avec request.getParameter et dans ton formulaire HTML, tu n'as pas besoin de remettre la valeur dans tes champs HTML. Tu as des JSP simples et aucun code Java. Ca c'est une regle importante pour avoir des JSP lights. Dans Struts la JSP est uniquement utilise en tant que View.

    SI tu veux tu peux aller voir le schema d'une archtecture (Struts/Spring/Hibernate) que j'ai fait sur http://gestcv.sourceforge.net/fr/architecture.html
    te donner une meilleur idee de Struts

    Angelo

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu confonds un peu...
    Avec MVC2, tu n'as certes qu'une seule servlet (il faut voir ça comme un frontal), mais tu peux avoir autant de contrôleurs que tu veux.
    Tu ne code strictement rien dans la servlet, tu dois créer des objets étendant Action ou DispatchAction ou LookupDispatchAction (pour les contrôleurs) et ActionForm (pour les objets "formulaire").

    Mais comme on te l'a déjà dit, autant passer à struts tout de suite (ou JSF)

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/04/2015, 00h11
  2. Réponses: 2
    Dernier message: 03/05/2010, 14h01
  3. [Kylix] Kylix et le développement web...
    Par nahmsath dans le forum EDI
    Réponses: 4
    Dernier message: 24/10/2002, 19h27

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