Model1和Model2是Javaweb开发的两种常见的模型,Model1是jsp+javabean的模式,Model2是jsp+servlet+javabean的模式。JavaBean就是将逻辑处理、数据库访问等等,在java中对对象进行的打包(对应下文图中的业务逻辑)。
下面就详细的认识认识:
在Model1模型中,是以JSP为中心,这种模型中JSP既要做页面显示,又要结合业务逻辑处理服务端过程,简单说就是Model1开发没有Servlet,JSP中既有HTML代码又有逻辑代码。JSP页面的交互通过页面里的链接完成。
Model1结构图如下:
注:业务逻辑层不同有之前三层中的业务逻辑层,这里的业务逻辑层既有业务处理又有数据访问。
优点:架构相对简单,适合小项目,业务简单的项目。
缺点:JSP的职责不单一,职责过重,根据设计模式的思想就是耦合性太高,不便于系统的维护。
其实我们通常把Model1作为一个基础来学习J2EE的开发流程。
因为Model1的缺点太过明显,在Model1的基础上,Model2对JSP的任务进行分离,将获取参数,调用逻辑这些和页面显示无关的转到Servlet处理,JSP只做显示即可。
Model2结构图如下:
图中已经标出,Model2其实MVC的应用。
在.NET中学习三层时就和MVC对比过,对MVC的理解也只是通过三层去理解的MVC的语义,不过现在看来,通过对Model2的使用,其实没有什么可比性的,但是其思想还是相同的,都通过分层去解耦,使系统变得更加灵活,更好的适应需求的变化,能够更好的进行人员分工。
在实际的开发过程中通常还会把其中的业务逻辑再进行分离,分出持久层(数据访问),目的还是为了划分职责,形成我们常用的三层架构:
表示层:JSP/Servlet
业务逻辑层:业务逻辑处理
持久层:主要包装持久化逻辑
三层结构图如下:
Model1、2和三层共同之处都在分层思想的体具体现,最终目的是在结构式去实现一个高内聚低耦合,然而到我们具体的项目开中,分层的思想,架构的依托,不仅于此,更重要的还是抽象,层与层之间最好依赖于抽象,每一层都建立一个抽象,如何去抽象,更好的抽象,这是我们每个人都要思考的。
开启 J2EE(七)— Model1、Model2和三层架构的演变,布布扣,bubuko.com
开启 J2EE(七)— Model1、Model2和三层架构的演变
原文:http://blog.csdn.net/akkzhjj/article/details/37667261