Meine Erfahrung mit der Entwicklung dynamischer Websites beschränkt sich hauptsächlich auf Java-Servlets. Ich habe Tomcat verwendet, um verschiedene Java-Servlets zu entwickeln, und ich würde ohne zu zögern sagen, dass ich sowohl mit dieser Technologie als auch mit clientseitigem HTML / CSS / Javascript für das Front-End einigermaßen vertraut bin.
Wenn ich an "dynamische Website" denke, dann denke ich: Der Benutzer fordert eine URL mit einer Abfragezeichenfolge an, der Server empfängt die Abfrage und gibt dann HTML dynamisch aus, um auf die Abfrage zu antworten. Dies beinhaltet häufig die Kommunikation mit einer Datenbank, um angeforderte Daten zur Anzeige abzurufen. Dies ist im Grunde die Idee hinter der doGet
Methode eines Java HttpServlet
.
Aber in diesen Tagen höre ich immer mehr von neueren Frameworks wie Django und Ruby on Rails, die alle die "Model View Controller" -Architektur nutzen. Ich habe verschiedene Artikel gelesen , in denen MVC erklärt wird, aber ich habe Probleme, die Vorteile wirklich zu verstehen. Ich verstehe, dass die allgemeine Idee darin besteht, die Geschäftslogik von der Benutzeroberflächenlogik zu trennen, aber ich verstehe nicht, wie sich dies wirklich von der normalen Webprogrammierung unterscheidet. Die Webprogrammierung zwingt Sie naturgemäß dazu, die Geschäftslogik (serverseitige Back-End-Programmierung) von der UI-Programmierung (clientseitiges HTML oder Javascript) zu trennen, da beide in völlig unterschiedlichen Programmierbereichen existieren.
Frage: Was bietet MVC gegenüber so etwas wie einem Java-Servlet und was genau ist MVC und wie unterscheidet es sich von dem, was Sie normalerweise tun würden, um eine dynamische Website mit einem traditionelleren Ansatz wie einem Java-Servlet (oder sogar einem Java-Servlet) zu entwickeln? etwas älteres wie CGI)? Wenn möglich, erläutern Sie MVC anhand eines Beispiels , wie MVC auf den Webentwicklungsprozess angewendet wird und welche Vorteile dies hat.