《ISDP平台系统web部分程序设计说明书.docx》由会员分享,可在线阅读,更多相关《ISDP平台系统web部分程序设计说明书.docx(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Product Name产品名称Product Version产品版本ISDPConfidentiality Level密级3.0Total s页数共25页ISDP平台把握(kngzh)内核局部(b fen)具体(xingx)设计说明书Prepared by拟制Reviewed by 评审人Approved by 批准Authorized by签发吴伟Date日期Date 日期Date 日期Date日期2023-07-26yyyy-mm-ddyyyy-mm-dd yyyy-mm-ddAll rights reserved版权全部 侵权必究ISDP平台把握(kngzh)内核局部(b fen)具体
2、(xingx)设计说明书密级Revision record 修订(xidng)记录DateRevisCRSectionChange DescriptionAuthor日期ionID /Numbe修改描述作者VersiDefecron修订t ID CR号修改章节版本2023-7-26Distribution List 分发(fnf)记录Copy No.1Holder”s Name & Role持有者和角色Issue Date分发日期2023-6-192yyyy-mm-dd3yyyy-mm-dd4yyyy-mm-dd5yyyy-mm-ddAll rights reserved版权全部侵权必究 2
3、, Total 25 第2页,共25页Catalog 目 录1 Introduction 文档简介(jin ji)71.1 Purpose 文档目的(md)71.2 Scope 范围(fnwi)72 平台(pngti)把握核心根本介绍72.1 Context Security Filter82.2 Control Servlet92.3 Request Handler92.4 Event Handler102.5 View Handler103 平台(pngti)把握核心程序具体设计113.1 control局部具体设计113.1.1 类org.ofbiz.core.control.Conte
4、xtSecurityFilter113.1.2 类org.ofbiz.core.control.ControlServlet113.1.3 类org.ofbiz.core.control.RequestHandler113.1.4 类org.ofbiz.core.control.RequestManager123.1.5 类org.ofbiz.core.control.ConfigXMLReader143.2 event局部具体设计173.2.1 工厂类org.ofbiz.core.event.EventFactory173.2.2 接口org.ofbiz.core.event.EventHa
5、ndler173.2.3 实现类org.ofbiz.core.event.ISDPServiceEventHandler183.2.4 实现类org.ofbiz.core.event.JavaEventHandler183.2.5 实现类org.ofbiz.core.event.ServiceEventHandler183.3 view局部具体设计193.3.1 工厂类org.ofbiz.core.view.ViewFactory.193.3.2 接口org.ofbiz.core.view.ViewHandler.203.3.3 实现类org.ofbiz.core.view. ViewHand
6、ler203.3.4 实现类org.ofbiz.core.view.JspViewHandler203.3.5 实现类org.ofbiz.core.view.RegionViewHandler213.4 region局部具体设计213.4.1 类org.ofbiz.core.region.RegionManager213.4.2 类org.ofbiz.core.region.Content223.4.3 类org.ofbiz.core.region.Section233.4.4 类org.ofbiz.core.region.RegionStack233.4.5 类org.ofbiz.core.
7、region.Regionregion.Region233.4.6 类org.ofbiz.core.region.RenderTag243.5 tag局部具体设计243.5.1 类AbstractParameterTag243.5.2 类EntityFieldTag243.5.3 类FormatTag243.5.4 类I18nBundleTag243.5.5 类I18nMessageArgumentTag243.5.6 类I18nMessageTag243.5.7 类IfTag243.5.8 类InputValueTag243.5.9 类IterateNextTag243.5.10 类Iter
8、atorHasNextTag253.5.11 类IteratorTag253.5.12 类ObjectTag253.5.13 类ParamTag253.5.14 类ServiceTag253.5.15 类UnlessTag253.5.16 类UrlTag25Table List 表名目(ml)Abbreviations缩略语6ISDP平台把握核心(hxn)WEB局部 具体(xingx)设计说明书Keywords 关键词:能够表达(txin)文档描述内容主要方面的词汇。Abstract 摘 要:Abbreviations缩略语Full spelling 英文全名Chinese explanati
9、on 中文解释List of abbreviations 缩略语清单(qngdn):对本文所用缩略语进展说明,要求(yoqi)供给每个缩略语的英文全名和中文解释。Controller.x mlTag 标签1Introduction文档简介(jin ji)1.1 Purpose文档目的(md)本文档是平台把握(kngzh)核心模块(m kui)的具体(xingx)设计文档。本文(bnwn)主要编写的目的是为了帮助开发人员更加了解平台系统的功能,内容描述了平台把握核心实现的功能,开发人员如何设置平台配置和编写平台类,扩展平台功能。1.2 Scope 范围主要包括了平台把握核心包中主要函数的功能及如
10、何正确配置。2 平台把握核心根本介绍平台把握核心主要分为以下五局部Context Security Filter Control Servlet Request Handler Event HandlerView HandlerFilterControl 把握器EventHandler扫瞄器View 视图ViewHandlerWeb.xmlJspViewHandlerJsp 页面描绘处理器调用 一般页面描绘处理器 ViewHandler视图的描绘处理ViewHandler平台的扩展点实现ViewHandler 接口即可大事的处理调用效劳引擎处理器ServiceEventHandler调用 ja
11、va 静态方法处理器JavaEventHandlerEventHandler平台的扩展点实现EventHandler接口即可2.1 Context Security Filter内容安全过滤器在/WEB-INF/web.xml 中定义,把握web 应用程序访问文件。可以增加记录(jl)和 debug 扫瞄器恳求的功能。这是全部web 恳求的起点。在 web.xml 中过滤器可以定义的初始(ch sh)参数allowedPaths允许(ynx)访问的资源,各个资源路径之间用 : 连接(linji)例子(l zi): ”/images” 表示(biosh)imges 名目下全部文件和名目。例子(l
12、 zi): ”/site-s/contactus.html” 仅运行访问contactus.html 例子: ”/site-s/info/*” 允许访问 info 名目下全部文件allowedPaths/control:/index.html:/index.jsp:/images:/scripts:当一个恳求访问一个被保护的资源,过滤器可以有两种返回类型,一个重定向之地址,一个返回错误代码,errorCode 和 redirectPath 只需要设置一个errorCode,redirectPath例子:errorCode403redirectPath/control/main2.2 Contr
13、ol ServletControlServlet 是 web 应用恳求处理的中心,当过滤器过滤通过的恳求提交之此。当恳求过来时,servlet 首先初始化一些环境关心的类,初始化一个session,然后把一些关心类对象实体处理,效劳发起,安全处理引用设置到request 中去。这个处理最终提交给RequestHandler 处理。2.3 Request HandlerRequestHandler 类利用RequestManager 类来治理xml 格式的恳求流程定义具体文件名:/WEB-INF/controller.xml。这个恳求流程关系一般包含恳求资源标识,可选的回显视图名称和需要调用的大
14、事。按回显视图名称对应到视图的定义,视图定义也在cotroller.xml 中设置。ISDP平台把握(kngzh)内核局部(b fen)具体(xingx)设计说明书密级大事可以通过实体委派类(EntityDelegator)直接调用(dioyng)实体引擎,也可以通过效劳发起类(ServiceDispatcher)调用效劳service来处理业务规律。当 RequestHandler 收到一个恳求(qngqi),首先依据恳求资源标识查找对应的恳求流程配置,如找不到就直接返回不知道恳求(qngqi)类型。然后由安全处理类验证当前(dngqin) 恳求是否要求验证,用户是否已被授权访问。假设不满足
15、条件,将返回登陆界面。通过验证之 后,程序将查找大事的配置,假设找到配置,大事处理将提交给EventHandler 进展处理。大事处理完成,假设EventHandler 未指定回显视图名,就使用缺省视图,依据视图名获得视图配置,然后提交给ViewHandler 进展处理。下面就是(jish)一个恳求映射配置:Verify a user is logged in.2.4 Event HandlerEventHandler 的配置在controller.xml 中如:EventHandler 类型其实就区分为view 和其他类型。如需自己开发EventHandler,具体的类只要实现EventHa
16、ndler 接口就可以了。2.5 View HandlerViewHandler 的配置在controller.xml 中如:ViewHander 处理描绘下一个我们能看到的页面,缺省的ViewHandler 支持标准的html/jsp 页面。其他类型的ViewHandler如 region 和 veloctity使用特别的规律描绘页面。All rights reserved版权全部侵权必究 10 , Total 25 第10页,共25页3 平台(pngti)把握核心程序具体(xingx)设计把握(kngzh)核心模块主要类的功能说明(shumng)如下:3.1 control局部(b fen
17、)具体设计3.1.1 类org.ofbiz.core.control.ContextSecurityFilter用途:内容安全过滤器在/WEB-INF/web.xml中定义,把握web 应用程序访问文件。可以增加记录和 debug 扫瞄器恳求的功能。3.1.2 类org.ofbiz.core.control.ControlServlet用途:web 应用的把握Servlet3.1.3 类org.ofbiz.core.control.RequestHandler用途:servlet 接收到恳求将由此类进展处理Method Summaryvoid doRequest(javax.servlet.
18、. ServletRequest requesjavax.servlet. . ServletResponse response, java.lang.String chain, org.ofbiz.core.entity.GenericValue userLogin, org.ofbiz.core.entity.GenericDelegator delegator)恳求处理入口java.lang.String getDefaultError(javax.servlet. . ServletReques st)返回缺省的显示错误页面org.ofbiz.core.event.EventFa ge
19、tEventFactoryctory获得大事处理类产生工厂staticjava.lang.String getNextUri(java.lang.String path)方法:获得下一页面资源标识RequestManager getRequestManager获得恳求治理总控javax.servlet.ServletContext getServletContext获得 ServletContext 对象org.ofbiz.core.view.ViewFact getViewFactoryory获得页面处理类产生工厂void init(javax.servlet.ServletContext
20、context)初始化 创立了页面处理类产生工厂,大事处理类产生工厂处理总控java.lang.String makeLink(javax.servlet. . ServletRequest reques javax.servlet. . ServletResponse response, java.lang.String url)构建安全连接的 URLjava.lang.String runEvent(javax.servlet. . ServletRequest request javax.servlet. . ServletResponse response, java.lang.Str
21、ing type, java.lang.String path, java.lang.String method)依据大事类型找到相应处理类运行大事3.1.4 类org.ofbiz.core.control.RequestManagerField Summary用途(yngt):治理恳求 ,配置(pizh),视图映射(yngsh)关系staticintEVENT_HANDLER_KEYEvent 大事处理类型staticintVIEW_HANDLER_KEYView 视图处理类型Method Summaryboolean allowDirectRequest(java.lang.String
22、uriStr) 推断是否允许直接访问boolean allowExtView(java.lang.String uriStr) 是否允许内部视图void clear方法(fngf):去除配置java.lang.String getDefaultError获得缺省错误页面java.lang.String getError(java.lang.String uriStr)从恳求映射关系request-map中获得错误显示页面, 假设没有使用缺省全局的java.lang.String getEventMethod(java.lang.String uriStr)获得恳求映射关系中的大事处理方法jav
23、a.lang.String getEventPath(java.lang.String uriStr)获得恳求映射关系中大事处理路径java.lang.String getEventType(java.lang.String uriStr)获得恳求映射关系中的处理类型java.util.Collection getFirstVisitEvents获得首次访问处理大事集java.lang.String getHandlerClass(java.lang.String name, int type)获得处理类名java.util.Map getHandlerMap获得全部恳求处理器配置java.u
24、til.Collection getPostProcessor获得每次恳求完成之后处理大事集java.util.CollectiongetPreProcessor获得每次访问预处理大事集java.lang.StringgetRequestAttribute(java.lang.String java.lang.String attribute)uriStr,获得恳求映射关系的属性值java.util.MapgetRequestMapMap(java.lang.StringuriStr)获得此恳求资源标识对应的恳求处理映射Request-Map)java.lang.String getViewC
25、ontentType(java.lang.String viewStr) 获得页面 content-typejava.lang.String getViewEncoding(java.lang.String viewStr) 获得页面编码方式java.lang.String getViewInfo(java.lang.String viewStr)获得视图描述信息java.lang.String getViewName(java.lang.String uriStr)获得恳求映射关系中视图配置名java.lang.String getView(java.lang.String viewStr)
26、获得视图配置中的页面定义java.lang.String getViewType(java.lang.String获得视图处理类型boolean requiresAuth(java.lang.String此恳求是否需要安全验证boolean requires s(java.lang.String是否要求安全连接viewStr)uriStr)uriStr)3.1.5 类org.ofbiz.core.control.ConfigXMLReader用途(yngt):解析(ji x)x配ml置文件Field Summarystatic java.lang.String DEFAULT_ERROR_缺省
27、错误页面定义域名static java.lang.String ERROR_错误页面定义域名static java.lang.String EVENT大事定义域名static java.lang.String EVENT_METHOD大事方法定义域名static java.lang.String EVENT_PATH大事路径定义域名static java.lang.String EVENT_TYPE大事类型定义域名static java.lang.String FIRSTVISIT首次访问定义域名static java.lang.String HANDLER处理器定义域名static java
28、.lang.String HANDLER_CLASS处理器类定义域名static java.lang.String HANDLER_NAME处理器名称定义域名static java.lang.String HANDLER_TYPE处理器类型定义域名static org.ofbiz.core.util.UtilCache handlerCache恳求处理器配置缓存static org.ofbiz.core.util.UtilCache headCache网站根本配置缓存static java.lang.String INCLUDE包含域名static java.lang.String INCLU
29、DE_FILE包含文件定义域名static java.lang.String INCLUDE_URL包含 URL 定义域名static java.lang.String moduleDebug 时使用的名称static java.lang.String NEXT_成功页面定义域名staticjava.lang.StringPOSTPROCESSOR后处理staticjava.lang.StringPREPROCESSOR预处理staticjava.lang.StringREQUEST_DESCRIPTION恳求描述定义域名staticjava.lang.StringREQUEST_EDITst
30、aticjava.lang.StringREQUEST_MAPPING恳求映射关系定义域名static java.lang.String REQUEST_URI恳求资源标识static org.ofbiz.core.util.UtilCache requestCache恳求映射关系配置缓存static java.lang.String RESPONSE响应定义域名static java.lang.String RESPONSE_NAME响应名称定义域名static java.lang.String RESPONSE_TYPE响应类型定义域名static java.lang.String RES
31、PONSE_VALUE响应值定义域名static java.lang.String SECURITY安全把握定义域名static java.lang.String SECURITY_AUTH安全把握授权定义域名static java.lang.String SECURITY_CLASSstaticjava.lang.StringSECURITY_DIRECT直接恳求定义域名staticjava.lang.StringSECURITY_EXTVIEW内部页面定义域名staticjava.lang.StringSECURITY_ Sstaticjava.lang.StringSITE_OWNER站
32、点全部者定义域名staticjava.lang.StringVIEW_CONTENT_TYPE安全把握类定义域名页面内容类型定义域名static java.lang.String VIEW_DESCRIPTION页面描述定义域名static java.lang.String VIEW_ENCODING页面编码方式定义域名static java.lang.String VIEW_INFO页面信息定义域名static java.lang.String VIEW_MAPPING页面映射定义域名static java.lang.String VIEW_NAME页面名称定义域名static java.l
33、ang.String VIEW_页面页面定义域名static java.lang.String VIEW_TYPE页面类型定义域名static org.ofbiz.core.util.UtilCache viewCache页面配置缓存方法(fngf):Method Summarystatic void clearConfig(.URL url)去除 url 对应的 controller.xml 的配置, 目的就是为了支持修改 controller.xml 文件不需要重启,只需要重公布staticjava.util.Map getConfigMap(.URL xml)获得站点配置staticja
34、va.util.Map getHandlerMap(.URL xml)获得全部恳求处理器配置static java.util.HashMap getRequestMap(.URL xml)获得恳求映射关系集合staticjava.util.Map getViewMap(.URL xml)获得全部页面配置3.2 event局部具体(xingx)设计3.2.1 工厂(gngchng)类org.ofbiz.core.event.EventFactory用途(yngt):某一大事(shjin)的处理需要获得一个处理类对象(duxing),此类就负责产生恳求处理类对象Field Summaryprote
35、ctedjava.util.Map handlers处理类对象集合protectedorg.ofbiz.core.control.RequestHandler requestHandlerservlet 恳求处理引用protectedorg.ofbiz.core.control.RequestManager requestManager恳求治理总控引用Method SummaryEventHandler getEventHandler(java.lang.String type)获得一个恳求大事处理类对象方法:3.2.2 接口org.ofbiz.core.event.EventHandler用
36、途:定义恳求大事处理接口,它的实现类对象将有EventFactory 产生Method Summaryjava.lang.String invoke(java.lang.String eventPath,java.lang.StringeventMethod, javax.servlet. . ServletRequest request, javax.servlet. . ServletResponse response)大事的处理方法:3.2.3 实现类org.ofbiz.core.event.ISDPServiceEventHandler用途:恳求大事处理接口的一个实现类,效劳的调用Fi
37、eld Summarystatic java.lang.String ASYNCstatic java.lang.String SYNCMethod Summaryjava.lang.String invoke(java.lang.String eventPath,java.lang.StringeventMethod, javax.servlet. . ServletRequest request, javax.servlet. . ServletResponse response)恳求大事的处理, 类型为 java 静态方法的调用方法(fngf):3.2.4 实现(shxin)类org.o
38、fbiz.core.event.JavaEventHandler用途(yngt):一种恳求(qngqi事) 件处理类型 java 静态方法调用此 java 静态(jngti)方法必需有输入参数必需是 ServletRequest, ServletResponse输出必需为String,且方法修饰符为public static如:public static String MethodName( ServletRequest req, ServletResponse resp)Method Summaryjava.lang.String invoke(java.lang.String eventP
39、ath,java.lang.StringeventMethod, javax.servlet. . ServletRequest request, javax.servlet. . ServletResponse response)恳求大事的处理, 类型为 java 静态方法的调用方法:3.2.5 实现类org.ofbiz.core.event.ServiceEventHandler用途:恳求大事处理接口的一个实现类,效劳的调用Field Summarystatic java.lang.String ASYNC异步类型定义static java.lang.String SYNC同步类型定义Me
40、thod Summaryjava.lang.String invoke(java.lang.String eventPath,java.lang.StringeventMethod, javax.servlet. . ServletRequest request, javax.servlet. . ServletResponse response)恳求大事的处理, 类型为 java 静态方法的调用方法:3.3 view局部具体(xingx)设计3.3.1 工厂(gngchng)类org.ofbiz.core.view.ViewFactory 用途(yngt):页面(y min)处理类工厂负责产生页面描绘处理类对象(duxing),被生产对象的类必需实现ViewHandler 接口Field Summaryprotectedjavax.servlet.ServletContext contextServlet 上下文java.util.Map handlers页面描绘处