壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6143|回复: 23

[OAF] OracleOAF开发指南第二章翻译(中文)-(1)

    [复制链接]
发表于 2008/4/7 12:40:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
这里贴出的是我翻译的Oracle OAF Developler's Guide for Release 12的第二章,该章主要介绍了OAF的一些基本概念和框架以及相关的web开发的知识。鉴于水平有限,有些翻译自己感觉都有些失当,请各位及时提出修正意见。
OAF开发课程第二章-OA Framework Essential
1、JSP Application Prime
如果你没有web application的开发经验,下面将讲解一些基础的知识。比如一个JSP 应用是如何构建的,在运行时发生了什么。并说明OAF开发教程中的一些重要的关键概念。
1.1.1.      Key JSP Application Components

一个典型的JSP应用要包括以下的组件:用来进行客户端访问的浏览器、存放企业数据的数据库和一个web应用服务器(中间件)。
浏览器通过HTTP(超文本传输协议)协议与应用服务器进行通信。该通信过程中包括从客户端通过浏览器发送一个request信息到应用服务器,然后应用服务器响应请求,返回一个response信息到浏览器。
JSP是内部有HTMLJava代码的从头到尾顺序执行的文件。在运行时,它会被编译成为一个Servlet class
Servlet是实现了标准API的基于Javaweb应用服务器扩展程序。
JavaBean(简称bean)是很容易进行重用的组件。它根据一定的设计模式的思想来进行构建,便于开发人员使用开发工具易于挖掘对象的属性和行为。
应用服务器上的任何对象均是通过JDBC驱动与数据库进行通信。
模型图如下所示:


1.1.2.      What Happens at Runtime

Step 1
当用户点击一个超连接、按钮或者热点图像时,浏览器发送一个HTTP请求到web应用服务器进行处理。HTTP请求主要有POSTGET两种。
HTTP GET
不论用户点击一个超链接或者热点图像时,浏览器发送的请求均为GET类型的。你可以把GET请求假想成一张明信片:请求的任何信息都写在明信卡上。这就意味着所有的通信信息均可以看到,数据均是通过地址栏参数进行传输。
HTTP POST
当用户点击按钮、热点图像或超链接都能触发一个FORM提交时,浏览器发送一个POST请求到服务器。
你可以把POST请求假想为寄信:地址写在外边,但是内容封装在信封内,此种请求下对存储在信封中的内容的数量没有限制。但是被提交的数据在地址栏上是不可见的。
What’s Form?
Form”允许你将数据输入由Form提供的“Form. fields”中,并将数据发送到服务器进行处理。“Form”是一个HTML组件容器,可容纳显示控件和隐藏控件。在其上可放置各类带有动作控制的网页控件(如提交按钮)。当用户点击一个提交按钮时,浏览器就会发送一个PSOT类型的请求,将Form数据发送到服务器。
Step 2
Web应用服务器提供HTTP监听,接收传入的请求被转交到相应的JSP。开发出来的代码并不在乎浏览器发送的是POST还是GET类的请求,仅仅是获取请求的值,然后依据获取值决定下面来做哪些处理。比如说,某个请求的值可能“通知”JSP,“Go”按钮已经被点击,这就意味着要必须执行一次查询。
Step 3
JSP调用一个或多个JavaBean来实现某些交互行为,比如与数据库的交互。一旦指定的工作被完成,JSP页面将把适当的HTML内容通过response返回到发该请求的浏览器。
Step 4
浏览器显示接受到的response中的HTML代码。
1.1.3.      Event Handling: Web UI vs. Classic Client UI

在传统的C/S结构的应用程序中,事件处理的粒度可以从最低级的鼠标移动动作到控件级、区域级直到窗口级。并且,在客户端与服务器进行交互时,可以很容易就单个值来进行服务端验证。由于用户界面可以随意修改,这也意味着与用户的充分交互很容易做到。
Web应用中,通常只能处理页面级别的事件,除非使用Javascript来进行页面事件控制。但在OAF开发中,基于OAF的代码规范和BLAFOracle Browser Look and Feel)的要求,我们在这里不做考虑。在这种情况下,用户从一个元件域导航到另一个元件域输入数据,是没有事件可供开发人员使用的。
注:OAF提供了局部页面刷新(PPR)的功能,用来支持上面说到的情况。这将在OAF开发课程第四章详细讲述。
如上面所说的,当浏览器最终发送了一个请求时,所有的页面数据,包括用户输入的值以及用户向要执行的动作,都在该此交互中被传送到服务器。开发人员读取请求的值来确定客户端什么事件被用户触发,然后根据要求来执行被选定的动作,最后生成HTML页面,并传输回浏览器。
1.1.4.      Page Navigation

Standard Request


JSP Forward



Client Redirect


1.1.5.      What is a Cookie?

为了理解OAF框架中是如何在用户登录后保持上下文信息,我们在这里要讲一下“cookie”。
Cookie是为了解决HTML中无法保持请求状态的弊病而发展出来的技术。Cookie中保存有web应用服务端发送到浏览器端的响应每一次请求的信息。它以文件的形式存放在客户端,以便于服务器进行识别。服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是购物车之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。而基于会话的cookie保持在浏览器的内存中,当浏览器关闭的时候,该cookie将被销毁。
1.1.6.      More About Servlet Sessions



如上图所示,鉴于服务器端的资源有限,对web服务的每次连接均应通过AOL/J池中的JDBC连接。Servlet引擎池按照请求来启动处理线程。它会给每一个接收到的请求分配一个处理线程。处理完成后,Servlet引擎池将会收回处理线程。
1.2.   剖析OAF页面

1.2.1.      Page Basics

OAF中的Page,与其他浏览器级的web页面一样,都将内容展现为标准的HTML
在应用服务器中,页面通过编译成为JavaBean来展现-非常类似经典的Java客户端的UI界面。每个UI组件,比如按钮,表格,标签页,商标图片等等,都在页面中按照一定的层级关系做为Web bean来展现出来。
当浏览器发出一个对新页面的请求时,OA Framework读取页面中的描述性的元数据定义来生成页面的层次bean。每个关联有UI Controllerbean,开发者可以在这些Controller中编写初始化页面的代码以供OA Framework在初始化页面时进行调用。当完成了页面的处理,OA Framework将把web bean的层次提交给UIX框架,由其来生成HTML代码,并发送给浏览器进行展现。
当浏览器发送了一个表单的提交的请求时,比如点击了“Go”按钮,OA Framework会在必要的情况下重新生成页面的Web bean层次,然后执行为页面bean中的事件处理代码。当页面处理完成时,页面被重新生成,然后发送到浏览器。
下面部分将介绍在实现页面时涉及到MVC模式以及modelviewcontroller
如下图所示:


1.2.2.      The Model

Model(模型),封装了应用程序的数据和业务逻辑,是对现实世界对象和所提供的应用服务的抽象。
OAF开发课程第三中将会详细讲述Model的实现细节。
Application Modules

BC4Japplication module做为一个管理容器,为与相关的BC4J模型对象进行交互而提供访问途径。在这种情况下,对象都作用一个任务的相关部分而发生关系。比如,所有的BC4J对象均包含简单的事务处理,并按照相关关联包含在一个任务中。即使此时要求用户对多个页面进行访问。
AM的关系图如下:



所有的AM类都是从oracle.apps.fnd.framework.server.OAApplicationModuleImpl继承的子类。
每个OAF的页面均有一个root AM,与页面的顶级regionstylepageLayout)进行关联。页面的root AM提供事务处理上下文并且负责建立数据库连接。
在一个实际或虚拟的事务处理中,如果由多个页面参与进来,他们可以共享同一个root AM。而如果页面功能相对独立,则它必须由自己的AM
在本章中,OAF状态管理将会详细讨论root AM和各种页面之间的关系。
附件:
发表于 2008/4/7 15:40:07 | 显示全部楼层
我的天,做这个工作好难的
发表于 2008/12/2 17:25:41 | 显示全部楼层
哇,还翻译,真太牛了啊
发表于 2008/12/26 09:41:46 | 显示全部楼层
这个没什么意思,就是搞java的web开发了,呵呵
发表于 2009/2/11 23:57:42 | 显示全部楼层
4# joey
号东西最近就是招不到oaf的东西谢谢了
发表于 2009/6/8 13:21:37 | 显示全部楼层
DDDDDDDDDDDDDDDD
发表于 2009/7/9 13:21:54 | 显示全部楼层
谢谢楼主!就是看不到图片!
发表于 2009/8/25 11:28:22 | 显示全部楼层
呵呵 看看 好好学习~~
谢谢分享
发表于 2009/9/3 11:29:01 | 显示全部楼层
LZ辛苦了,鼓励
发表于 2009/9/9 16:33:51 | 显示全部楼层
这贴不顶不行。。勇哥辛苦了。。。
发表于 2010/5/28 07:46:59 | 显示全部楼层
楼主辛苦了。谢谢。
发表于 2010/8/6 16:01:13 | 显示全部楼层
好东西啊,就是没有全部翻译啊
发表于 2010/8/10 10:52:08 | 显示全部楼层
老蓝发动了
发表于 2010/8/18 15:02:08 | 显示全部楼层
不错,顶一下...
发表于 2010/12/2 14:55:47 | 显示全部楼层
确实很辛苦的工作
发表于 2010/12/3 17:45:09 | 显示全部楼层
非常感謝,剛還在下載OAF的東西
发表于 2010/12/9 22:07:05 | 显示全部楼层
谢谢楼主!
发表于 2011/7/6 11:49:03 | 显示全部楼层
这是一个很巨大的工程,谢谢楼主!
发表于 2011/7/7 11:35:34 | 显示全部楼层
很好,下载来看看
发表于 2011/8/15 22:37:40 | 显示全部楼层
不错的文章,多谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 14:11 , Processed in 0.030057 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表