一、MVC设计模式1、MVC的概念首先我们要知道,MVC模式并不是javaweb项目独有的,MVC是一种软件工程的一种软件架构模式将软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),即MVC。它是一种软件设计模式,由TrygveReenskaug首先提出,是施乐帕洛阿尔托研究中心(XeroxPARC)为Smalltalk语言发明的一种软件设计模式。2、MVC详解虽然MVC并不是Java独有的,但现在几乎所有的B/S架构都采用了MVC框架模式,只是MVC在B/S架构中还没有完全实现。未实现的部分需要掌握。Controller:控制器是控制请求、处理请求、负责转发请求的处理逻辑;View视图:视图是用户看到并与之交互的界面,如HTML(静态资源)、JSP(动态资源)等。·Model模型:模型代表了一种企业规范,是对业务流程/状态的处理和业务规则的规定。业务流程的处理对其他层是不透明的,模型接受视图数据的请求并返回最终的处理结果。业务模型的设计可以说是MVC的核心。3、MVC模式的用武之地MVC模式广泛应用于Java的各种框架,如Struts2、SpringMVC等,都采用了这种思想。Struts2是一个基于MVC的轻量级Web应用程序框架。基于MVC,说明了基于Struts2开发的Web应用自然可以实现MVC,也说明了Struts2在MVC的各个部分着重为我们的开发提供了相应的帮助。二、Javaweb经典三层架构1、Javaweb经历了三个时期①JSPModel1第一代JSPModel1是JavaWeb的早期模型,适用于小型Web项目,开发成本低!在第一代Model1的时候,服务器只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也是在JSP页面中完成的。也就是说,一切都耦合在一起,极不利于后期的维护和扩展。②二代JSPModel1改进了二代JSPModel1,将业务逻辑内容放到JavaBean中,由JSP页面负责展示和请求调度。虽然二代比一代好,但还是让JSP做了太多的工作。在JSP中,视图的工作和请求调度(控制器)是耦合在一起的。③JSPModel2JSPModel2模式已经可以清楚的看到MVC的完整结构。JSP:View层,用来和用户打交道。负责接收使用过的数据,并将数据展示给用户;Servlet:控制层,负责寻找合适的模型对象处理业务逻辑,转发给合适的视图;JavaBean:model层,完成具体的业务工作,例如:open,Transfer等。这就是javaweb经历的三年。JSPModel2适合多人协作开发大型Web项目。但是Web项目的开发难度增加了,对开发人员的技术要求也提高了。2、JavaWeb经典三层框架我们常说的三层框架是由JavaWeb提出的,也就是说它是JavaWeb独有的!所谓三层就是表现层(WEB层)、业务逻辑层(BusinessLogic)和数据访问层(DataAccess)。·WEB层:包含JSP和Servlet等WEB相关内容;·业务层:JavaWebAPI不属于业务层,只关心业务逻辑;·数据层:封装了访问数据库的细节;注意,在业务层的JavaWebAPI,如request、response等,不能出现在.也就是说,业务层代码是可重用的,甚至可以应用于非Web环境。业务层的每个方法都可以理解为一个通用的,比如转账业务方法。业务层依赖数据层,Web层依赖业务层!注:网上很多人都在讨论MVC是框架模式还是设计模式(百度百科强行解释是框架模式而不是设计模式),虽然Java的23种设计模式中没有MVC,但我认为没有必要讨论这个问题。我们可以把它当作一种思想,我们要做的就是理解它,运用它,掌握其中的思想,这就是我们需要做的。
