Mon expérience dans le développement de sites Web dynamiques se limite principalement aux servlets Java. J'ai utilisé Tomcat pour développer divers servlets Java, et je n'hésiterais pas à dire que je suis raisonnablement compétent avec cette technologie, ainsi qu'avec HTML / CSS / Javascript côté client pour le front-end.
Quand je pense à "site Web dynamique", je pense: l'utilisateur demande une URL avec une chaîne de requête, le serveur reçoit la requête, puis procède à la sortie HTML dynamique afin de répondre à la requête. Cela implique souvent une communication avec une base de données afin de récupérer les données demandées pour l'affichage. C'est fondamentalement l'idée derrière la doGet
méthode d'un Java HttpServlet
.
Mais de nos jours, j'entends de plus en plus parler de nouveaux frameworks tels que Django et Ruby on Rails, qui profitent tous de l'architecture "Model View Controller". J'ai lu divers articles qui expliquent MVC, mais j'ai du mal à vraiment comprendre les avantages. Je comprends que l'idée générale est de séparer la logique métier de la logique de l'interface utilisateur, mais je ne vois pas en quoi cela est vraiment différent de la programmation Web normale. La programmation Web, par sa nature même, vous oblige à séparer la logique métier (programmation côté serveur back-end) de la programmation UI (HTML côté client ou Javascript), car les deux existent dans des sphères de programmation entièrement différentes.
Question: Qu'est - ce que MVC offre sur quelque chose comme un servlet Java, et plus important encore , exactement c'est MVC et comment est - il différent de ce que vous le feriez normalement pour développer un site Web dynamique en utilisant une approche plus traditionnelle comme un servlet Java (ou même quelque chose de plus ancien comme CGI)? Si possible, lorsque vous expliquez MVC, veuillez fournir un exemple qui illustre comment MVC est appliqué au processus de développement Web et en quoi il est bénéfique.