从低级的往高级的看。
最傻的当然是只有JSP页面,而且在页面中大量嵌入JAVA代码。
好一点的,就是JSP+Servlet。JSP页面中的表单部分给一个action提交给Servlet,然后Servlet进行JAVA代码处理再重定向一个JSP页面。我现在的代码就处于这种状态。
再好一点,就是
JSP+Servlet+JavaBean。JavaBean的存在价值就是把与数据库连接和使用的部分封装起来。如此以来,作为处理action的Servlet,就不允许直接操纵数据库,而是通过JavaBean的使用来间接使用数据库。用正式一点的话来说,
JavaBean的作用就是数据持久化,而Servlet是一个控制器,JSP页面是显示层,一个经典的MVC模型就此诞生了。这也是我目前的毕设所追求的架构。
再好一点,就是Struts框架。Struts框架也许没做什么实质性的工作。它的存在是因为人们对MVC模型的追求以及对于快速开发的追求。它并不是一个创新,而是一种整合,内部的机制与JSP+Servlet+JavaBean并没有什么不同,它或许让我们不必在一些细节上花太多的无用功。
再好一点,也好不到哪里去了,比如用Hibernate来做持久层等等,无非是细节上的优化,而非架构上的突破。
本文来自CSDN博客,转载请标明出处:blog.csdn.net/dennis2k/archive/2008/05/04/2375986.aspx
MVC(Model/View/Controller)架构并不是一种新兴技术或者新兴思想,它是XeroxPARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用,在国内,尤其是OA软件领域也得到了充分的应用。
先简要介绍一下MVC架构的内容和工作过程:
1、模型(Model):
模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusionComponents这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
2、视图(View):
视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员
列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
3、控制器(controller):
控制器
工作就是根据用户的输入,控制用户界面数据
显示和更新model对象状态。控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。
简单来说MVC的工作过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
通过实例来看看看MVC架构的好处:
华天
软件作为一个注重技术优势的公司,是国内最早采用MVC架构的OA厂商之一,
通过在其网站上(oa8000)公布的DEMO版本,我们可以看出采用该体系结构的最大的好处是:数据与控制层与界面相互分离。
1、这是最重要的,多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序。对此,一个好的办法就是使用MVC,无论用户想要Flash界面或是 WAP 界面,用一个模型就能处理它们。由于已经将数据和业务规则从表示层分开,所