Мій досвід розробки динамічних веб-сайтів здебільшого обмежений Java сервлетами. Я використовував Tomcat для розробки різних сервлетів Java, і я не соромлюсь сказати, що я досить добре володію цією технологією, а також із клієнтською HTML / CSS / Javascript для передньої частини.
Коли я думаю, що "динамічний веб-сайт", я думаю: користувач запитує URL із рядком запиту, сервер отримує запит, а потім продовжує динамічно виводити HTML, щоб відповісти на запит. Це часто включає зв’язок із базою даних для того, щоб отримати запитувані дані для відображення. Це в основному ідея doGet
методу Java HttpServlet
.
Але в наші дні я все більше і більше чую про новіші рамки, такі як Django і Ruby on Rails, які використовують перевагу архітектури "Model View Controller". Я читав різні статті, які пояснюють MVC, але у мене виникають труднощі з розумінням переваг. Я розумію, що загальна ідея полягає в тому, щоб відокремити бізнес-логіку від логіки інтерфейсу, але я не бачу, як це щось інакше відрізняється від звичайного веб-програмування. Веб-програмування, за своєю суттю, змушує вас відокремити бізнес-логіку (зворотне серверне програмування) від програмного інтерфейсу (клієнтський HTML або Javascript), оскільки вони існують у абсолютно різних сферах програмування.
Питання: Що таке MVC пропозицію на що - то , як сервлет Java, і що більш важливо, що саме це MVC і як вона відрізняється від того, що ви зазвичай робите , буде розробити динамічний сайт , використовуючи більш традиційний підхід , наприклад сервлету Java (або навіть щось старше, як CGI)? Якщо можливо, пояснюючи MVC, наведіть приклад, який ілюструє, як MVC застосовується до процесу веб-розробки та як це вигідно.