我想知道开发中MVC和MVC Model2之间的实际区别是什么
答案 0 :(得分:20)
为了说明以前的答案(并添加this article的解释):
MVC2是一个abuse of language实际上是指JSP Model 2架构,而不是JSP Model 1:
服务器端Web开发的第一个Java技术是 servlet 使用servlet编写应用程序与在Perl中编写CGI应用程序非常相似,因为所有输出都必须在Java代码中构建为字符串。
这非常乏味且容易出错。它还使没有Java经验的Web设计人员很难改变servlet生成的页面的外观和感觉。
(来源:javaworld.com)
然后来了 JSP 。 JSP,如Microsoft ASP和流行的脚本语言PHP,将所有内容视为模板文本,但允许将Java代码插入到称为scriptlet和JSP表达式的标记中。
这使得人们可以像使用其他流行的脚本语言一样处理服务器端应用程序,但它有一些缺点。
- 没有关注点分离。
- 一个脚本将保存数据库代码,业务逻辑,HTML标记以及最终页面呈现所需的任何javascript代码。
- 代码重用很难,就像自动化测试一样。
这被称为“模型1”JSP编程。
MVC or the Model View Controller pattern是分离Trygve Reenskaug发明的GUI代码中的各种关注点的常用技术,为Zerox的Smalltalk工作。
在某些时候,很明显这种技术可以适应Java EE应用程序,以达到相同的分离水平 这样做涉及将Model层编写为Beans或Plain Old Java Objects(POJO),使用servlet作为Controller,然后,当完成所有繁重的工作时,转发到JSP以格式化并标记结果。
使用和MVC架构编写的Servlet / JSP应用程序被称为Model 2 JSP编程。
(来源:javaworld.com)
因为这个模式在用于servlet / JSP应用程序之前以不同的形式存在,所以它有时被称为“MVC2”。这个名称引起了一些混乱,因为它暗示了servlet应用程序有一个MVC1,但没有 说MVC就足够了。
答案 1 :(得分:3)
有关条款的有趣历史记录......
[我希望我能找到这篇论文......(我刚试过谷歌搜索但没有运气!)]
前段时间,有人写了一篇论文,描述了两种针对Web应用程序的MVC方法。在其中,他有两个数字。
标题是“模型1”和“模型2”。
它们并不是模式的实际名称(更像是“图1”和“图2”),但是有人读了它并写下了它,好像那是一个模式名称......
(任何人都有参考?)
VonC很好地描述了差异