1 引言
WW.W_PLC※JS_C,OM-PL,C-技.术_网
Java是目前开发网络应用程序的主流技术,在实际的工程开发应用中,设计和构造一个使业务逻辑能在其中执行的应用程序框架是成功的关键。程序框架相当于人的骨骼,执行业务逻辑的代码相当于人的功能器官。作为一个高效、优质的框架应该具备以下的特点:WWW.PLCJS.COM——可编程控制器技术门户
(1)可重用性P.L.C.技.术.网——可编程控制器技术门户
即应用程序的一些基本功能和逻辑在框架内部可以重复使用;WWW_PL※CJS_COM-PLC-技.术_网
(2)清晰的层次WWW.PLCJS.COM——可编程控制器技术门户
即应用程序功能划分明确,接口清楚;P.L.C.技.术.网——可编程控制器技术门户
(3)可扩展性WW.W_PLC※JS_C,OM-PL,C-技.术_网
即能够轻松添加新的服务和功能。本文企图梳理和探讨Java中网络应用程序结构的历史和发展,以使读者能了解和跟踪当前网络程序结构的进展。下面对其发展历程中出现的各种经典结构进行了具体的分析。W1WW_P4LCJS_COM-PLC-技.术_网
2 页面中心结构
——可——编——程——控-制-器-技——术——门——户
所谓“页面中心”,即是浏览器对JSP页面的直接请求调用,JSP中直接包含了处理各种业务的逻辑代码,其结构图如图1所示。——可——编——程——控-制-器-技——术——门——户
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
图1 页面调度原理——可——编——程——控-制-器-技——术——门——户
WWW_P※LCJS_COM-PLC-)技.术_网
该种结构的特点是大量的Java scriptlet代码直接嵌入JSP页面中,对于较为简单的应用程序,不失为一种直接简便的方法,但是此种方法减少了模块重用的机会,且不利于角色功能的划分。于是,我们将处理后台资源的逻辑代码用Bean进行封装,发展成为带Bean的页面中心结构,其原理如图2所示。WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
plcjs.技.术_网
WWW_PLCJS_COM-PLC-技.术_网
图2 带Bean的页面中心结构plcjs.技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
带Bean的页面中心结构再结合自定义标志,确实可将一部分代码从JSP中移出,获得较为干净的JSP,但是此种结构随着其功能的增加,层次变得不够清晰,其扩展性也变得较差,不利于维护。所以,必须突破以页面为中心的结构方式,寻求一种能适应复杂功能需求的,且应用简单的框架结构。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
3 MVC结构WWW_PL※CJS_COM-PLC-技.术_网
——可——编——程——控-制-器-技——术——门——户
plcjs.技.术_网
图3 MVC结构图
P.L.C.技.术.网——可编程控制器技术门户
WWW_PLC※JS_COM-PmLC-技.术_网
MVC即模型视图控制器(Model-View-Control),这3个组件映射到3个主要的实现技术—Bean,JSP以及Servlet,其组件之间的相互作用如图3[2]所示。WW.W_PLC※JS_C,OM-PL,C-技.术_网
在图3中,模型执行业务逻辑的功能,比如保存处理数据、与数据库连接、拼装SQL语句等。视图执行显示逻辑的功能,即将获取的数据动态显示于网页上。控制器是模型和视图的粘和剂,向模型和视图提供逻辑处理层和授权,即对不同事件调用相应的视图和模型。下面结合图3分析基于MVC结构的应用程序在处理用户请求时的具体步骤:WWW_PLCJS_COM-PLC-技.术_网
(1) 浏览器发出服务请求,该请求转发给控制器;——可——编——程——控-制-器-技——术——门——户
(2) 控制器在检查用户请求的参数后,初始化并调用相应的业务组件来处理请求,该业务组件就叫做模型;WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
(3) 模型含有处理该用户请求的所有业务规则,它与后台资源进行交互,并将提取的信息包装起来返回给控制器;WWW_PLCJS_COM-PLC-技.术_网
(4) 控制器接收从模型返回的数据,并选择显示数据的结果页面,即是视图;WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
(5) 控制器在处理完请求后将结果返回给浏览器。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
3.1 使用MVC结构的优点WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
使用MVC结构的成功解决了页面中心结构层次不清等问题,并使工程开发具备了以下优点:WW.W_PLCJS_COM-PLC-技.术_网
(1) 松散的耦合WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
各个设计组件功能分工明确,且以灵活的方式相互作用,组件之间以清晰的方式传送信息,使得程序维护十分轻松;WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
(2) 并行的开发WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
可以轻松地将功能划分为不同地组件,使开发人员担当不同的角色,比如HTML页面开发者、JAVA软件开发者,从而大大提高了工程开发的效率;P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
(3) 重用性WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
控制器作为整个工程的转发中心,是大部分应用程序的公共基础。同时一些公用代码,如与数据库的连接等可以写成基类或接口,通过继承达到重用的目的;W1WW_P4LCJS_COM-PLC-技.术_网
(4) 扩展性WWW_P※LCJS_CO※M-PLC-技-.术_网
程序的功能随着客户的需求而增加,当某一新功能需加入应用程序时,可维持MVC基本框架不变,只需加入对应的模型和视图并修改配置文件便可,从而使应用程序有着良好的可扩展性。WWW.PLCJS.COM——可编程控制器技术门户
4 Struts框架
WWW_PLCJS@_COM%-PLC-技.术_网
MVC结构在工程实践中得到了广泛的应用,融合了多种技术,产生了各种变体,其中又以Struts框架最为著名。该框架是MVC设计思想的具体细化,其中的具体组件为[1]:WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)