JSP的Model1和Model2架构模式的分析比较

来源:互联网 发布:java ftp上传文件 编辑:程序博客网 时间:2024/04/28 08:35

JSPModel1Model2sun公司为了更好地指导Web开发人员进行JavaWeb开发提出的两种架构模式,用专业术语表达就是JSP Model 1JSP Model 2它们的本质区别在于处理批量请求的位置不同。

 

一、Model1架构模式

1Model1架构模式简介

Model1应用了JavaWeb开发当中的两种技术,即JSPJavaBean技术,所以Model1就是JSP+JavaBean模式。其中JSP需要独自完成响应用户的请求并将处理结果返回给用户,同时还需要完成流程的控制处理;而JavaBean进行辅助,如保存从数据库中查询出来的数据等。

JavaBean 是一种使用Java语言编写的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域的成员属性暴露给用户。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBeanApplet程序或者应用来使用这些对象。

JavaBean可分为两种:一种是有用户界面(UIUser Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算、操纵数据库)的JavaBeanJSP通常访问的是后一种JavaBean

2Model1的体系结构图

 

下面对上图的Model1体系结构图进行分析。

(1) 首先Web客户端向JSP页面发出request请求;

(2) 在JSP页面取得请求所需的页面参数;

(3) 通过JSP调用业务逻辑层的方法并返回结果;

(4) 在JSP中完成网页页面的渲染;

(5) 通过JSPWeb客户端返回处理结果。

3、Model1架构模式的优缺点

(1) 优点:架构简单,比较适合小型项目的开发。基本上使用JSP+持久层就可以完成一个小型项目的开发。

(2) 缺点:JSP页面有控制页面显示的代码又有与后台业务逻辑交互的Java代码,职责不单一,页面负担很重,影响页面运行速度;而且不方便后期的维护。如果不加选择地随意运用Model 1,会导致JSP页面内被嵌入大量的脚本片段或Java代码,特别是当需要处理的请求量很大时,情况会更为糟糕。

 

二、Model2架构模式

1Model2架构模式简介

Model 2架构模式是一种把JSPServlet联合使用来实现动态内容服务的方法,所以Model2就是JSP+Servlet+JavaBean模式。它吸取了两种技术各自的突出优点,使用JSP生成表达层的内容,使用Servlet完成深层次的处理任务。在Model 2中,Servlet充当控制者的角色,负责管理对请求的处理,创建JSP页面所需的JavaBean和对象,同时根据用户的动作决定把哪个JSP页面传给用户。特别要注意,在JSP页面内没有处理逻辑,它仅负责检索原先由Servlet创建的对象或JavaBean然后从Servlet中提取动态内容插入到静态模板中进行页面显示。所以简单来说,在Model 2中,JSP进行页面显示,JavaBean进行逻辑处理,Servlet完成逻辑控制。

2Model2的体系结构图

 

下面对上图的Model2体系结构图进行分析。

(1) 首先Web客户端向Servlet发出request请求;

(2) 通过Servlet取得请求所需的表单数据;

(3) Servlet向业务逻辑层调用业务逻辑方法并返回所需的数据;

(4) Servlet再重定向转到JSP页面,在JSP页面完成页面渲染;

(5) 通过JSP通过responseWeb客户端返回处理结果。

3Model2架构模式的总结

(1) JavaBean(Model)——模型层:主要职责是完成业务逻辑和保存数据的状态;

(2) JSP(View)——视图层,主要职责是完成页面显示;

(3) Servlet(Controller)——控制器,主要职责是获取表单数据、调用业务逻辑和完成页面的渲染。

4Model2架构模式的优缺点

(1) 优点:清晰地分离了表达和内容,明确了角色的定义以及开发者与网页设计者的分工,适合大型项目的开发。

(2) 缺点:分层过多,不适合小型项目的开发。

5Model1Model2的比较

Model1在一定程序上实现了MVC的设计理念,即JSP将控制层与表示层合二为一,JavaBean则为模型层。这样的话当然还是将控制层从JSP单独划分出来比较好。

Model2则是将控制层(Servlet)单独地划分出来了,专门负责业务流程的控制,响应页面的请求,创建所需的JavaBean实例,并将处理后的数据再返回给JSP。这样层次分明,不同开发人员的职责分工明确,所以项目越复杂,使用Model 2架构模型的好处就越大。

 

三、三层架构模型

Model2中的数据访问部分再次抽离出来得到持久化逻辑层,可以得到经典的三层架构模型。如下图所示。

 

(1) 以上为非常经典的三层结构模型:

表示层:JSP/Servlet

业务逻辑层:业务规则

持久化层:主要是包装持久化逻辑

(2) 抽取出持久化层的好处:主要是为了持久化层的改变不会影响业务逻辑层,从而更好地划分职责。

(3) 表示层、业务逻辑层、持久化层是自上而下的依赖关系,而且通常是单向依赖,最好依赖于抽象的东西。

 

 

参考资料:

(1) 《JSP Model1JSP Model2的区别》,网址:http://blog.sina.com.cn/s/blog_67c5640b0100xlyc.html

(2) 《JSPModel1Model2体系介绍》,网址:http://blog.163.com/rui_uk/blog/static/269596312007341178266/

0 0
原创粉丝点击