欢迎来到天天文库
浏览记录
ID:41277277
大小:860.00 KB
页数:102页
时间:2019-08-21
《Ofbiz变成说明开放文档FreeandOpenDocumentsHuihoo》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、技术文档第一部分、ofbiz表现一、理解MVC模式 当涉及大量商业逻辑项目的时候,我们需要考虑什么?如何分离用户界面和后台操作?如何避免将商业逻辑混淆于一般的流程控制中?作为企业信息系统,就需要考虑很多类似的问题。 源源不断的客户新需求,要进行功能修改和扩充,但是因为程序的高耦合,改动将变得非常困难,导致项目成本何风险增加。而且,往往维护人员与开发人员不是同一个人,即使有详尽的文档,也很难理清程序里纵横交错的联系。所以贯彻Model-View-Controller(MVC)模式的设计,在设计阶段首先杜绝此
2、类问题,是一个非常好的方法。1、MVC理论描述所谓MVC模式,指的是一种划分系统功能的方法,它将一个系统划分为三个部分:l模型(Model):封装的是数据源和所有基于对这些数据的操作。在一个组件中,Model往往表示组件的状态和操作状态的方法。l视图(View):封装的是对数据源Model的一种显示。一个模型可以由多个视图,而一个视图理论上也可以同不同的模型关联起来。l控制器(Control):封装的是外界作用于模型的操作。通常,这些操作会转发到模型上,并调用模型中相应的一个或者多个方法。一般Controller在M
3、odel和View之间起到了沟通的作用,处理用户在View上的输入,并转发给Model。这样Model和View两者之间可以做到松散耦合,甚至可以彼此不知道对方,而由Controller连接起这两个部分。模型,即相关的数据,它是对象的内在属性;视图是模型的外在表现形式,一个模型可以对应一个或者多个视图,视图还具有与外界交互的功能;控制器是模型与视图的联系纽带,控制器提取通过视图传输进来的外部信息转化成相应事件,然后由对应的控制器对模型进行更新;相应的,模型的更新与修改将通过控制器通知视图,保持视图与模型的一致性。下图
4、(图1.1)描述了这三者之间的关系:2、系统设计 系统属于浏览器/服务器模型(Browser/Server)。一般的,客户通过浏览器发送HTTP请求给服务器端Web服务器,Web服务器接收该请求并且进行相应处理,然后将处理后的结果返回到客户的浏览器中。在客户端,浏览器中呈现的正是该系统的视图部分。视图的作用就是提供给客户一个可视化的界面,并且允许客户输入一些数据来与服务器端程序交互。 对客户来说,他只能看到视图,而模型和控制器对他则是透明的。在这里Web服务器仅仅起到提供HTTP服务的作用。Web服务器将
5、客户提交的HTTP请求交给后方的Jsp、Servlet引擎,并且进一步交给其中的控制器来处理。控制器按照从xml配置文件中提取的请求映射表将该请求映射到相应的处理器(Handler);处理器对模型进行更新、修改等操作,处理完后返回结果给控制器;控制器根据结果通知视图做相应变化,并且选择相应视图返回给客户。下图(图1。2)说明了这一协作过程。3、OFBiz中MVC模式体现OFBIZ的Web应用框架严格遵循MVC模式。OFBizMVC中Model有它的封装业务逻辑的事件和服务承担.Control有controller承担
6、,View有传统的jsp,和FreeMarker,JPublish,Beanshell承担。这里我主要说明Control(Model,View将在相应技术的模块阐述).在OFBiz框架中,Controller是一组管理web表示层对象,其目的是将业务逻辑和表示层完全地分离开来。1)过滤器(ContextSecurityFilter) ServletAPI2.3中最重大的改变是增加了filters,filters能够传递request或者修改response。Filters并不是servlets;它们不能产生re
7、sponse。你可以把过滤器看作是还没有到达servlet的request的预处理器,或从servlet发出的response的后处理器。一句话,filter代表了原先的"servletchaining"概念,且比"servletchaining"更成熟。filter能够:在servlet被调用之前截取servlet在servlet被调用之前查看request提供一个自定义的封装原有request的request对象,修改request头和request内容提供一个自定义的封装原有response的response对
8、象,修改response头和response内ContextSecurityFilter(CSF)在/WEB-INF/web.xml定义,用来限制访问web应用程序的文件.具体参看下面的例子.filter配置如下:ContextSecurityFilter
此文档下载收益归作者所有