分享
 
 
 

Oracle webserver中文介绍-第三章

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Oracle Web Agent是当Web Listener收到一个动态文档请求时执行的CGI程序。此程序登录进数据库并执行作为URL的一部分而指定的PL/SQL存储过程。

作为开发Web Agent的PL/SQL工具,WebServer Developer''s Toolkit包括以下包:

HTP (超文本过程)和 HTF(超文本函数) 简化了在用户的PL/SQL代码里 生成Html标记的工作。HTP和HTF自动生成由Oracle Web检索的HTML标记。

OWA_UTIL 包含了能使程序员更快速构造HTML输出的实用函数。

注重: Web Agent 也包括一些叫OWA的PL/SQL包,它包括一些由Web Agent调用的进行诸如设置CGI环境变量和从PL/SQL表中提取由PL/SQL代码生成的输出等实用功能。一个PL/SQL开发员不能直接调用OWA包,虽然它可以用用户通过URL直接调用。

Oracle WebServer Developer''s Toolkit的进一步信息见第四章。

谁使用Oracle Web Agent

Oracle Web Agent 可以被以下人使用:

想开发与oracle7互操作的Web应用的程序员。Oracle Web Agent答应程序员创建 PL/SQL过程来进行数据库操作并将结果格式化为HTML文档。这些文档被返回Web 客户端。所以,程序员需要了解以下知识:

用于生成HTML格式文档的超文本函数和超文本过程。

PL/SQL过程语言的基础。

另外,以下知识对于程序员也非常重要:

哪些公共网关接口的变量 对于 PL/SQL应用是有效的,以及如何存取它们。

Web Agent如何处理参数 (本章介绍)

如何使用OWA_UTIL PL/SQL实用包 (, "The WebServer Developer''s Toolkit".中介绍)

想安装和设置Oracle Web Agent,并用治理员工具维护Web Agent的系统治理员。

治理员需要了解以下知识:

如何创建,修改和删除Web Agent服务。

在哪里安装由Web Agent提供的开发工具PL/SQL包。

下述信息对治理员也十分有用:

Oracle Web Agent如何工作 (本章讲述)

Web Agent如何处理错误 (本章讲述)

3.1 Oracle Web Agent如何工作

Oracle Web Agent使你能用开发工具箱创建PL/SQL存储过程来存取Oracle7的数据,动态生成来自那些数据的HTML文档,并将文档返回给客户端。

下面描述一下Oracle Web Agent是如何一步一步工作的:

1. 用户从浏览器提交一个URL。

用户以下列方法之一提交URL:

通过从HTML页面上选择一个链接

在其浏览器的打开URL框中指定一个URL

提交HTML表格

此动作触发了一个与URL相关的GET或POST请求方法操作。请求方法使用HTTP协议传给了Web Listener。

2. Web Listener 启动了 Web Agent.

Web Listener判定此URL是否与Oracle Web Agent有关(通过抽取URL的/owa部分),并调用Web Agent。为与CGI标准兼容,Web Listener使几个环境变量对Web Agent有效.

3. Web Agent连接到Oracle7 Server.

为连接到Oracle7 Server,Web Agent要求一些诸如连接到哪个服务器,使用什么用户名和口令等信息。这些信息作为Web Agent的一部分,存储在位于OWS治理目录下的文件owa.cfg 中。Web Agent通过解析环境变量SCRIPT_NAME来决定使用哪个服务,环境变量SCRIPT_NAME是由Web Listener根据CGI 1.1说明书设定的。

Web Listener从URL中/owa 前面的路径段推出这个环境变量的值。例如,假如/ows-bin/hr/owa是URL的前边部分,那么hr就是要使用的服务。

有关如何设置Web Agent service的进一步的内容, 请见本章后面的"Web AgentService"一节.

4. PL/SQL 过程被调用

连接到数据库后,Web Agent调用相应的PL/SQL过程,其名字通过解析环境变量PATH_INFO获得。

假如PL/SQL过程要求参数,这些参数已经由Web Listener通过环境变量QUERY_STRING或标准输入(这依靠于请求方法是"GET"还是"POST")传给了WebAgent。

Web Agent将把这些参数传给PL/SQL过程。

有关PATH_INFO, SCRIPT_NAME,和QUERY_STRING 以及Oracle Web Agent如何使用他们的内容, 请见本章后面的"Web Agent如何使用CGI环境变量"一节.

5. PL/SQL过程执行, 生成 HTML 文档.

在Developer''s Toolkit的帮助下,PL/SQL过程从Oracle7数据库中提取出数据并在PL/SQL表中生成了HTML文档。

有关Developer''s Toolkit的内容请见第四章"Oracle WebServer Developer''s Toolkit."

6. Web Agent将生成的HTML文档传给Oracle Web Listener.

假如PL/SQL过程成功结束,Web Agent将从PL/SQL表里取出生成的HTML文档,并把它发送到标准输出,那里是Web Listener期望CGI应用把他们的输出发送到的地方。

假如PL/SQL过程返回错误,Web Agent则把程序定义的出错页面发送到标准输出。

有关如何处理错误的内容请见"Oracle Web Agent Error Handling"一节。

7. Web Listener把 HTML文档发送回原发出请求的浏览器

Web Listener使用HTTP将HTML文档发还浏览器。浏览器并不知道请求的文档是在飞行中生成的,把它象任何其他HTML一样显示在屏幕上。

Web Agent服务 Service

因为人们希望单个Web Listener能够访问多个数据库或一个数据库里的多个模式,Oracle Web Agent支持服务的概念。我们用下面的例子描述一下服务的概念:

公司A想让他们存储在Oracle7数据库中的数据可以被公众通过Oracle Web Listener访问。然而公司内不同部门对数据库以用户名为分割的不同部分(模式)有访问权限。

所以,人力资源部和财务部使用不同的用户名/口令组合来登录数据库。假如他们都想用使用Oracle Web Agent的CGI应用访问他们的数据,Web Agent需要使用正确的用户名/口令来登录数据库。采用这种方案,含有配置信息的owa.cfg文件中包含两个服务,HR 服务和AP服务。每个服务有相关的用户名/口令,ORACLE_HOME参数,和ORACLE_SID参数。当一个来自浏览器的请求到来时,Web Listener从URL中抽取出服务名并读取owa.cfg文件找出将使用的参数。

为连接到Oracle7服务器,Web Agent需要在Web Agent服务中指明以下信息:

username 用户名

passWord 口令

ORACLE_HOME

ORACLE_SID (仅对本地数据库)

SQL*Net V2 Service Name or Connect String (仅对远程数据库)

Administration Utility答应治理员显示,创建,修改或删除Web Agent服务。用创建

Web Agent的表格,你不需要直接修改配置文件owa.cfg。参见 "Creating or Modifying Web Agent Services," 。

下面是一个owa.cfg文件中Web Agent服务项的例子,每个参数有相应的解释。

Developer''s T#

(

owa_service = es

(

owa_user = www_es

)

(

owa_password = tiger

)

(

oracle_home = /opt/oracle7

)

(

oracle_sid = esprod

)

(

owa_err_page = /es_err.html

)

(

owa_valid_ports = 8000 8888

)

(

owa_log_dir = /opt/oracle7/ows/log

)

(

owa_nls_lang = AMERICAN_AMERICA.US7ASCII

)

)

owa_service

Web Agent 服务的名字

owa_user

Web Agent连接数据库用的数据库用户名。

owa_password

Web Agent连接数据库用的数据库口令。

oracle_home

Oracle7代码树在文件系统中的位置。它应该是Web Agent服务连接到的数据库的ORACLE_HOME,除非Web Agent设置为通过SQL*NET连接到一个远程数据库。这种情况下,指定Web Agent所在的ORACLE_HOME。Web Agent总是安装在ORACLE_HOME目录或其子目录下。

oracle_sid

将连接到的数据库的系统ID名。连接到远程数据库时,不要使用。

owa_err_page

Web Agent调用的PL/SQL过程发生错误时,Web Agent返回的HTML文档的路径。这是个实际路径,而非Web Listener配置中的那种虚拟路径。

owa_valid_ports

Web Agent将服务的有效的Web Listener网络端口。

owa_log_dir

Oracle Web Agent写出错文件的目录。出错文件的名字为service_name.err。

owa_nls_lang

Web Agent连接的Oracle7数据库的NLS_LANG。若不指定,Web Agent治理程序当服务执行时寻找数据库的NLS_LANG。

Web Agent如何使用CGI环境变量

Web Agent使用的环境变量见表3-1:

变量 包含

REQUEST_METHOD GET 或 POST

PATH_INFO 将调用的PL/SQL过程的名字。

SCRIPT_NAME 包含登录Oracle7时用的Web Agent和服务 。

QUERY_STRING PL/SQL过程的参数(仅对GET方法。POST方法的参数通过标准输入传递。)

表 3 - 1. Oracle Web Agent使用的CGI 变量

下面是一个典型的URL如何被与CGI 1.1说明书兼容的Web Listener解析的例子。

http://www.nhl.com:8080/ows-bin/nhl/owa/hockey.pass?person=Gretzky

1. 子串 http://www.nhl.com:8080 表明Web浏览器要用HTTP协议连接到www.nhl.com主机的端口8080上。

2. 当运行在www.nhl.com上的Oracle Web Listener接收到请求,子串/ows-bin/nh

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有