基于M VC设计模式的Struts架构

2011-03-19 05:02邓连瑾尤德祥
天津职业院校联合学报 2011年5期
关键词:表单视图页面

邓连瑾,尤德祥

(天津渤海职业技术学院,天津市 300402;铁道第三勘察设计院集团有限公司,天津市 300142)

Struts框架核心技术,如JSP,Servlet,EJB等等被广泛应用在众多网站中。但长期以来仅靠JSP技术开发的Web应用中,业务逻辑处理、动态显示用的Java代码以及HTM L混合在一起,使得阅读、调试和维护都困难重重。长期以来,Java开发者致力于找到一种完美的Web层应用框架,从而规范这一层软件的开发。目前,Struts已成为Web应用开发中最为流行的框架之一。它基于M VC的设计思想,很好地实现了业务逻辑与用户界面的分离,同时,它提供了大量的自定义标记库,可以在JSP页面中分离动态显示逻辑与静态的H TM L,使页面代码更清晰,可读性大大提高。

一、MVC综述

MVC设计模式的主要思想是将应用程序整体结构划分为三个部分:模型(Model)、视图(View)和控制器(Controller),以提高应用程序的可扩展性。这三个部分的作用分别描述如下:

1.M odel:它是业务逻辑处理模块,是对业务流程中的实体对象进行抽象,并封装了对象的属性和对象隐藏的业务逻辑。

2.View:它是用户视图模块,为用户提供了输入方式,并触发 Controller运行,然后通过 Model访问数据实体,并用某种方式来显示这些数据。

3.Controller:它是流程控制模块,管理着用户与View的交互,能从View中取得数据并传给Model去执行业务逻辑,然后根据Model的执行结果,选择一个合适的View把结果显示给用户。

M VC模型在基于J2EE技术的B/S项目开发中进行了扩展,其中M odel、View、Controller分别由JavaBean、JSP、Servlet实现。首先由Servlet接受客户端的请求,然后调用对应Bean进行业务逻辑的处理,获得处理结果后调用相应的JSP页面,JSP页面则依据存储结果的Bean生成HTM L页面,并返回给客户端。

二、模型综述

模型(Model)是整个软件架构的核心部分,它封装了企业业务流程中的数据结构和事务逻辑,负责维护数据实体并提供外部对其内部数据的访问方法。在Struts框架中,模型以相互联系的JavaBean形式存在。模型通常分为ActionForm和Action两部分。ActionForm组件对象表示系统的内部状态,实现了对客户端视图中表单数据的良好封装和支持。Action组件对象表示系统状态改变的动作,封装了具体业务流程,而且可以通过ActionForm对象对客户端视图中表单数据进行读写,并将处理结果提交到合适的JSP页面显示。

三、视图综述

在Struts框架中,视图(V iew)利用JSP技术实现Struts框架的用户界面。视图层功能单一,它不提供业务逻辑,不了解控制器的情况,仅仅提供对模型数据的访问获取,而不能更改模型数据。为了使用M odel中的ActionForm对象,我们必须用Struts提供的自定义标记创建 HTM L表单。同时,Struts还提供了大量的自定义标签,开发者通过这些自定义标签可以很好地与系统的模型交互,利用这些自定义标签创建的JSP表单,可以实现与模型部分中的ActionForm的映射,完成对客户端数据的封装。目前自定义标签库包括:Bean Tags,Logic Tags,Nested Tags,Temp lateTags等。

四、控制器综述

用户可以通过控制器来完成对视图的修改,从而改变模型的状态。控制器负责调用模型的改值方法以改变模型的状态,同时控制器会通知所有的已登记视图刷新数据显示。控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。

Struts框架是一种用JSP和Servlet来开发B/S架构应用程序的方法。Struts框架采用了MVC(Model-View-Controller)的设计思想,把应用逻辑、处理过程和显示逻辑划分成不同的组件实现,从而使整个机构更具扩展性,代码更具重用性。

Struts框架为M odel部分提供了Action和ActionForm对象,所有的Action处理器对象都是Action类派生的子类。Action处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。ActionForm组件对象可以通过定义属性描述客户端表单数据。View部分是通过JSP技术实现的。Struts中的Controller功能是由ActionServlet和ActionMapping对象构成。核心是一个Servlet类型的对象ActionServlet,它用来接受客户端的请求。ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action处理器对象之间的映射。

五、Struts的解释

Struts的工作流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionServlet,ActionServlet根据Struts-config.xm l中的配置信息,将用户请求封装成一个指定名称的Form Bean,每一个FormBean都必须继承ActionForm类。然后将此Form Bean传至指定名称的ActionBean,由ActionBean完成相应的业务操作。

在Struts框架中,控制器功能由ActionServlet对象构成,用来接受客户端的请求。ActionServlet包括一组基于配置的ActionM apping对象,每个ActionMapping对象实现了一个请求到一个Action处理器对象之间的映射,其映射配置存放于StrutsConfig.xml中。模型部分由Action和ActionForm对象构成。Action处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的视图组件以产生响应。Struts提供的Form组件对象可以通过定义属性描述客户端表单数据,结合Struts提供的自定义标记库实现视图和模型间的相互通信。视图部分通过一般由JSP技术实现,从而完成页面显示。由此可见,Struts框架解决了逻辑处理代码和 HTML页面显示代码分离的难题,提供了对开发MVC模式的B/S系统的底层支持。

[1]潘利群,李耿.MVC模式在J2EE中的实现[J].武汉理工大学学报,2004,26(05).

[2]Gamma E.设计模式:可复用面向对象软件的基础[M].北京:机械工业出版社,2003.

[3]寇毅,吴力文.基于M VC设计模式的struts框架的应用方法[J].计算机应用,2003,23(11).

猜你喜欢
表单视图页面
刷新生活的页面
电子表单系统应用分析
基于图表示和匹配的表单定位与提取
浅谈网页制作中表单的教学
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
移动页面设计:为老人做设计
动态表单技术在教学管理中的应用*