-
MVC - jsp, servlet, XML
Bonjour à tous,
je ne suis pas un expert en application web et j'ai une question en ce qui concerne les bonnes pratiques pour la structure des applications.
Voilà, j'aimerai programmer une application de gestion de clients. Un client a des coordonnés, des préférences, des produits déjà achetés, etc. Toute cette information ce trouve dans un ficher XML. Or, je veux utiliser le design MVC et voila mon problème: Pour être fidèle au modèl, l'accès au fichier XML (control, la logique de l'application) ce fait à l'intérieur d'une servlet et l'information est remise a une JSP (view) à l'aide d'un bean. Seulement, dans le cas ou je dois afficher tous les clients et l'information s'y rapportant, il devient presque ridicule de créer des beans; il est bien plus facil de passer le fichier XML au complet ou carrément de lire le fichier XML à partir de la JSP (et dans ce cas de renoncer a une structure de type Model View Control).
Y-a-t-il quelqu'un qui aurait une idée comment je pourrais structurer mon programme de façon élégante?
merci :oops:
-
Bonjour,
Si vous voulez respecter une architecture MVC la servlet ne doit pas utiliser directement le fichier XML. Vous devez définir un bean, une classe métier qui sert d'intermédiaire.
Evidemment comme vous dites ça peut parait plus simple d'afficher directement le fichier dans une jsp. C'est valable pour toutes les sources de données : il est aussi très simple de faire un select * from client dans le cas d'une bdd.
En optant pour une architecture MVC vos vues et vos controleurs deviennent indépendants de la source. Si demain au lieu d'un fichier xml vous utilisez une base vous n'aurez pas réécrire beaucoup de codes.
Maintenant, si vous voulez absolument accèder aux données depuis une vue rien ne l'interdit mais je ne pense pas que ce soit beaucoup plus performant et c'est surtout nettement plus difficile à maintenir.
-
Merci CiTriX pour votre réponse, ça m'encourage. :D
-
Pour la conception, il faut bien comprendre qui est qui.
Le V de MVC est bien la JSP.
Par contre la Servlet est le C (contrôleur). C'est à dire que la Servlet est là pour transcrire ce qu'a fait l'utilisateur dans la vue au modèle métier, et rafraichir correctement la vue avec la réponse du modèle métier.
Dans ton cas, il faut donc que tu crées une classe métier qui aura la responsabilité de transmettre les clients au contrôleur. Cette classe peut ensuite encore faire appel à une classe DAO dont l'implémentation est pour l'instant de lire un fichier XML.
En fait, tout dépend de la "portée" de ton application. Est-ce une seule page qui affiche un XML ? Ou est-ce quelque chose de + vaste ? Est-ce que ça devra évoluer ?