我在开发动态网站方面的经验主要限于Java Servlet。我已经使用Tomcat开发了各种Java servlet,并且我毫不犹豫地说我对这项技术以及前端的客户端HTML / CSS / Javascript相当精通。
当我想到“动态网站”时,我认为:用户请求带有查询字符串的URL,服务器接收查询,然后继续动态输出HTML以响应查询。这通常涉及与数据库的通信,以便获取请求的数据以进行显示。这基本上doGet
是Java方法背后的思想HttpServlet
。
但是,这些天来,我越来越多地听到有关诸如Django和Ruby on Rails之类的较新框架的信息,它们都利用了“模型视图控制器”架构。我已经阅读了许多 解释MVC的文章,但是我很难真正理解其好处。我知道一般的想法是将业务逻辑与UI逻辑分开,但是我看不出这与普通的Web编程有什么真正的不同。从本质上讲,Web编程迫使您将业务逻辑(后端服务器端编程)与UI编程(客户端HTML或Javascript)分开,因为两者存在于完全不同的编程领域。
问题: MVC在Java servlet之类的东西上提供了什么?更重要的是, MVC到底是什么?与使用Java servlet(甚至是Java servlet)甚至更传统的方法来开发动态网站时,MVC有何不同?像CGI这样的旧版本?如果可能,在解释MVC时,请提供一个示例,说明如何将MVC应用于Web开发过程以及它如何带来好处。