⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oracle webserver

📁 介绍了数据库方面的基础知识
💻
📖 第 1 页 / 共 2 页
字号:
作者:孤独求败
日期:00-1-14 3:56:03
第三章 Oracle Web Agent的构成
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 Agent 
Service"一节.
4. PL/SQL 过程被调用
连接到数据库后,Web Agent调用相应的PL/SQL过程,其名字通过解析环境变量 
PATH_INFO获得。
如果PL/SQL过程要求参数,这些参数已经由Web Listener通过环境变量 
QUERY_STRING或标准输入(这依赖于请求方法是"GET"还是"POST")传给了Web 
Agent。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/nhl/owa 表明要求Web Listener去执行Web Agent而不是返回一个静态HTML 
文件。
3. 调用Web Agent后, Web Listener把/ows-bin/nhl/owa作为环境变量SCRIPT_NAME 
传给Web Agent。URL的其他部分以这种方式传给Web Agent:子串/hockey_pass作为 
PATH_INFO,子串"person=Gretzky"作为QUERY_STRING,传递给Web Agent。
4. Web Agent从SCRIPT_NAME中解析出服务名nhl. 
注意:如果Web Agent不能处理传来的服务名, 缺省为owa_default_service. 
5. Web Agent解析PATH_INFO来决定hockey_pass为登录Oracle7后调用的PL/SQL过程。 
6. Web Agent将在QUERY_STRING变量中传给他的参数传给他调用的PL/SQL过程。
注意: 使用环境变量QUERY_STRING 即表明这是个GET请求. 你也可以用POST方法传递 
参数。如何使用POST方法传递参数的例子,见下一节, "传递参数给PL/SQL". 
  
传递参数给PL/SQL
为了执行和生成相应的HTML文档,一个PL/SQL过程通常需要参数。以下几节讨论一下 
一个PL/SQL开发员在参数如何得以传递到指定的PL/SQL例程方面应该理解的几个关键 
概念和要领。 
 这些关键概念和要领为: 

从Web浏览器到Web Agent的参数获取 
使用HTML表格传递参数 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -