1、/scripts:当一个请求访问一个被保护的资源,过滤器可以有两种返回类型,一个重定向之新地址,一个返回错误代码,errorCode和redirectPath只需要设置一个errorCode,redirectPatherrorCode403redirectPath/control/main,平台控制核心基本介绍,Control ServletControlServlet是web应用请求处理的中心,当过滤器过滤通过的请求提交之此。当请求过来时,servlet首先初始化一些环境辅助的类,初始化一个session,然后把一些辅助类对象(实体处理,服务发起,安全处理)引用设置到request中去。这个
2、处理最终提交给RequestHandler处理。,平台控制核心基本介绍,Request Handler RequestHandler类利用RequestManager类来管理xml格式的请求流程定义(具体文件名:/WEB-INF/controller.xml)。这个请求流程关系一般包含请求资源标识,可选的回显视图名称和需要调用的事件。按回显视图名称对应到视图的定义,视图定义也在cotroller.xml中设置。事件可以通过实体委派类(EntityDelegator)直接调用实体引擎,也可以通过服务发起类(ServiceDispatcher)调用服务(service)来处理业务逻辑。当Reque
3、stHandler收到一个请求,首先根据请求资源标识查找对应的请求流程配置,如找不到就直接返回不知道请求类型。然后由安全处理类验证当前请求是否要求验证,用户是否已被授权访问。如果不满足条件,将返回登陆界面。通过验证之后,程序将寻找事件的配置,如果找到配置,事件处理将提交给EventHandler进行处理。事件处理完成,如果EventHandler未指定回显视图名,就使用缺省视图,根据视图名获得视图配置,然后提交给ViewHandler进行处理。,平台控制核心基本介绍,Verify a user is logged in.,平台控制核心基本介绍,Event HandlerEventHandler
4、的配置在controller.xml中EventHandler类型其实就区分为view和其他类型。如需自己开发EventHandler,具体的类只要实现EventHandler接口就可以了。,平台控制核心基本介绍,View HandlerViewHandler的配置在controller.xml中ViewHander处理描绘下一个我们能看到的页面,缺省的ViewHandler支持标准的html/jsp页面。其他类型的ViewHandler(如region和veloctity)使用特殊的逻辑描绘页面。,平台控制核心程序详细设计,control部分详细设计类org.ofbiz.core.contr
5、ol.ContextSecurityFilter用途:内容安全过滤器在/WEB-INF/web.xml中定义,控制web应用程序访问文件。类org.ofbiz.core.control.ControlServlet用途:web应用的控制Servlet类org.ofbiz.core.control.RequestHandler用途:servlet接收到请求将由此类进行处理类org.ofbiz.core.control.RequestManager用途:管理请求配置视图映射关系,平台控制核心程序详细设计,control部分详细设计类org.ofbiz.core.control.ConfigXMLR
6、eader用途:解析xml配置文件event部分详细设计工厂类org.ofbiz.core.event.EventFactory用途:某一事件的处理需要获得一个处理类对象,此类就负责产生请求处理类对象接口org.ofbiz.core.event.EventHandler用途:定义请求事件处理接口,它的实现类对象将有EventFactory产生,平台控制核心程序详细设计,event部分详细设计实现类org.ofbiz.core.event.ISDPServiceEventHandler用途:请求事件处理接口的一个实现类,服务的调用实现类org.ofbiz.core.event.JavaEvent
7、Handler用途:一种请求事件处理类型 java静态方法调用此java静态方法必须有输入参数必须是 HttpServletRequest,HttpServletResponse输出必须为String,且方法修饰符为public static 如:public static String MethodName(HttpServletRequest req,HttpServletResponse resp),平台控制核心程序详细设计,event部分详细设计实现类org.ofbiz.core.event.ServiceEventHandler用途:请求事件处理接口的一个实现类,服务的调用用途:一种
8、请求事件处理类型 java静态方法调用此java静态方法必须有输入参数必须是 DispatchContext,Map输出必须为String,且方法修饰符为public static 如:public static Map MethodName(DispachContext ctx,Map context),平台控制核心程序详细设计,view部分详细设计工厂类org.ofbiz.core.view.ViewFactory用途:页面处理类工厂负责产生页面描绘处理类对象,被生产对象的类必须实现ViewHandler接口接口org.ofbiz.core.view.ViewHandler用途:定义视图处
9、理接口实现类org.ofbiz.core.view.HttpViewHandler用途:ViewHandler的一个实现,使用HttpClient访问指定的page页面,把此页面描绘到本页面中实现类org.ofbiz.core.view.JspViewHandler用途:ViewHandler的一个实现,jsp页面的描绘,平台控制核心程序详细设计,view部分详细设计实现类org.ofbiz.core.view.RegionViewHandler用途:ViewHandler的一个实现,页面模板的描绘region部分详细设计类org.ofbiz.core.region.RegionManager
10、用途:管理页面模板和有关配置装载类org.ofbiz.core.region.Content用途:Section和Region的抽象类,平台控制核心程序详细设计,region部分详细设计类org.ofbiz.core.region.Section用途:页面模块的配置和描绘类org.ofbiz.core.region.RegionStack用途:页面模块堆栈类org.ofbiz.core.region.Regionregion.Region用途:页面模板配置和描绘,包括一组页面模块,配置信息都从/WEB-INF/regions.xml获得类org.ofbiz.core.region.Render
11、Tag用途:描绘一个页面模板的tag,平台控制核心程序详细设计,controller.xmlVerify a user is logged in.说明:URI:请求的名称,使用这个名字来访问请求Edit:保留给将来使用Description:描述这个请求https:如果request需要https,那么设置,默认为不使用请求命令是否是安全的,默认是Flase auth:如果request需要验证,那么,设置,默认为不验证鉴别访问者,默认是Flasetype:决定使用哪个处理事件的方法,这些方法在XML中有定义(service,java,jsp,http,region)direct-reques
12、t:如果request只能内部间接访问,那么,设置,默认为truepath:如果type为java,path为java实现的类路径;如果type为Service,path为空。invoke:请求的方法名或服务名response name:请求相应的名称response type:响应方式none,request,view,url.response value:响应的具体方法.,平台控制核心程序详细设计,controller.xml说明:name:视图映射的名称,在前面例子上的response中使用page:映射对应的页面type:视图的类型映射到ViewHandle,空的情况下默认是jsp类型
13、info:通过viewHandle来扩展信息View Handler/error/error.jsp配置默认的错误处理页面,用来处理出现错误的request,而又没有定义,平台控制核心程序详细设计,controller.xml配置请求的预处理(没有什么特殊的要求化,就不需要配置)第一次访问时需要做的事情每次请求前需要做的事情每次请求结束后需要做的事情,中的事件处理,只能够返回success或者null返回success表示ok返回null,表示结束请求的处理,平台控制核心程序详细设计,regions.xmlApplication Page Login Page,平台控制核心程序详细设计,reg
14、ions.xml说明:这里是定义页面模板的地方,先定义一个总的MAIN_REGION然后我们可以定义另一个模板来引用这个模板来改变内容或者补充内容在页面引用的时候使用:通过指定标签的位置来确定content在页面显示位置。,平台控制核心程序详细设计,myApp-entitymodel.xml,平台控制核心程序详细设计,myApp-entitymodel.xml说明:entity-name:实体名称table-name:表名称package-name:包名称enable-lock:乐观锁问题never-cache:是否可以缓存这个实体数据field name:实体中列名和数据表中的列名称col-name:数据表中的列名称type:在详细数据库对于XMl文件中配置的类型(fieldtypeoracle.xml,fieldtypemysql.xml等):主键名称,平台控制核心程序详细设计,myApp-entitymodel.xml说明:Type:是创建一个外键的关系,类型有:one,one-nofk,or many.rel-entity-name:需要建立关系的实体fk-name:外键关系名称,不推荐定义key-m
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1