MVC和MVC Model2之间的实际区别是什么?

Ash*_*iya 9 java model-view-controller

我想知道开发中MVC和MVC Model2之间的实际区别是什么

Von*_*onC 20

为了说明以前的答案(并添加本文的解释):

与JSP模型1相反,MVC2 实际上是指JSP模型2体系结构的滥用语言:

服务器端Web开发的第一个Java技术是servlet.
使用servlet编写应用程序与在Perl中编写CGI应用程序非常相似,因为所有输出都必须在Java代码中构建为Strings.
这非常乏味且容易出错.它还使没有Java经验的Web设计人员很难改变servlet生成的页面的外观和感觉.

替代文字http://www.javaworld.com/javaworld/jw-12-1999/images/MODEL1_sml.gif

然后是JSP.JSP,如Microsoft ASP,以及流行的脚本语言PHP,将所有内容都视为模板文本,但允许将Java代码插入到称为scriptlet和JSP表达式的标记中.
这使得人们可以像使用其他流行的脚本语言一样处理服务器端应用程序,但它有一些缺点.

  • 关注点没有分离.
  • 一个脚本将保存数据库代码,业务逻辑,HTML标记以及最终页面呈现所需的任何javascript代码.
  • 与自动化测试一样,代码重用很困难.

这后来被称为"模型1"JSP编程.

MVC或模型视图控制器模式是一种常见的技术,用于分离Trygve Reenskaug发明的GUI代码中的各种问题,为Zerox的Smalltalk工作.

在某些时候,很明显这种技术可以适应Java EE应用程序,以实现相同的分离水平.
这样做涉及将Model层编写为Beans或Plain Old Java Objects(POJO),使用servlet作为Controller,然后,当完成所有繁重工作时,转发到JSP以格式化并标记结果.
使用和MVC架构编写的Servlet/JSP应用程序被称为Model 2 JSP编程.

替代文字http://www.javaworld.com/javaworld/jw-12-1999/images/MODEL2_sml.gif

因为这种模式在用于servlet/JSP应用程序之前以不同的形式存在,所以它有时被称为"MVC2".这个名称引起了一些混乱,因为它暗示了servlet应用程序有一个MVC1,但没有.
说MVC就足够了.

  • @Vinegar:在没有阅读答案的情况下发表评论不是一个好主意;)"并在**这篇文章中添加解释**":复制的内容来自FIRST专栏中提到的那篇文章. (2认同)