本章描述组成Oracle WebServer工具箱的 超文本过程,超文本函数和实用程序。
Oracle Web Agent的主要目标之一就是PL/SQL程序员熟悉World Wide Web技术。
从这一点,Oracle WebServer包括了由几个PL/SQL组成的开发包以以最小化程序员对HTML语法的要求。虽然程序员仍然要求有HTML的工作知识,但使用工具包,他们不需要在PL/SQL过程中写HTML标记实际语法的的硬编码。例如,程序员要求实现一个必要的锚,但他不需要知道生成一个锚的字符的实际序列。
Oracle WebServer开发包包括下列PL/SQL包:
超文本过程 (HTP)
一个超文本过程 在HTML文档中生成包含与其名字相对应的HTML标记的一行。例如,htp.anchor过程生成一个锚标记。HTP包是三者之中最常用的包。 超文本函数 (HTF)
一个超文本函数返回与其名字相应的HTML标记。然而, 因为HTML标记不能通过Web Agent,所以不能直接调用HTF函数本身。HTF函数的输出必须通过htp.print,才能真正成为HTML文档的一部分。所以,下面一行:
htp.print(htf.italic(''Title''));
功能上等价于 :
htp.italic(''Title'');
每个超文本函数(HTF)有一个相对应的超文本过程(HTP)。所以HTF函数通常仅用于编程时需要嵌套调用的情况,例如:
htp.header(1,htf.italic(''Title''));
此例中,''htf.italic''将生成如下字符串:
Title 该字符串传给过程''htp.header''后,在格式化的HTML文档中将出现如下行:
Title
OWA Utilities (OWA_UTIL) OWA实用程序一个有用的实用过程和函数的集合。他们的目的包括从在HTML页上打印一个符号标记到简便地把Oracle表格式化为HTML格式。
OWA
一个仅供Oracle Web Agent自己调用的过程集合。此包中的任何子程序都不能在用户开发的PL/SQL中直接调用。
4.1 安装Oracle WebServer开发者工具箱
开发者工具箱的安装,使用OWA服务管理表格。在服务建立和修改页面上均有是否安装开发者工具箱的检查框选择。选择它并提交表格将做如下事情:
将CONNECT和RESOURCE角色授权给OWA数据库用户。
执行SQL脚本OWAINS.SQL,该文件可以在OWS管理目录下找到。若手动运行,应使用 SQL*DBA或Server Manager。若想在SQL*Plus里运行,看脚本头去找步骤。
脚本 OWAINS.SQL 将安装开发者工具箱的所有包。
优化多服务的安装
如果你的站点有多个Web Agent服务, 你可以按照下列步骤来最小化存储空间的占用量并增强PL/SQL的性能:
1.在一个数据库用户的模式下安装开发者工具箱,这个用户就是工具箱的拥有者。
2.从其他Web Agent服务的OWA数据库用户的模式下删除工具箱的PL/SQL包,如果
你已经安装了这些包的话。
connect
/
drop package HTF;
drop package HTP;
drop package OWA_UTIL;
drop package OWA;
3. 向其他Web Agent服务的OWA数据库用户授与在这些PL/SQL包上的EXECUTE权限。
connect /
grant execute on HTF to ;
grant execute on HTP to ;
grant execute on OWA_UTIL to ;
grant execute on OWA to ;
4. 在所有的OWA数据库用户中建立工具箱PL/SQL包的同义词。
connect /
create synonym HTF for .HTF;
create synonym HTP for .HTP;
create synonym OWA_UTIL for .OWA_UTIL;
create synonym OWA for .OWA;
Security Note 安全要点
PL/SQL 过程以PL/SQL代码的创建者的权限运行。对于Developer''s Toolkit, 这只关系到owa_util包. 两个子程序, showsource和tableprint,存取用户的数据。此包上的执行权限只能授给允许访问owa_util拥有者的表,视图和PL/SQL存储代码的拥护。
如果你的安装要考虑安全问题,为每个OWA数据库用户安装独立的owa_util包。
作此事的脚本如下:
PUBUTIL.SQL
PRIVUTIL.SQL
它们都在OWS管理目录下,应按所列的顺序执行。
List Tags 列表标记
List tags allow you to display information in any of the following ways:
ordered: these lists have numbered items
unordered: these lists have bullets to mark each item
definition: these lists alternate a term with its definition
Note: All the hypertext procedures (HTP) shown in this section are also available as hypertext functions (HTF).
htp.listHeader
语法 htp.listHeader (ctext, cattributes);
作用 Prints an HTML tag at the beginning of the list
参数 ctext in varchar2
cattributes in varchar2 DEFAULT NULL
Generates ctext
htp.listItem
语法 htp.listItem (ctext, cclear, cdingbat, csrc, cattributes);
作用 Prints an HTML tag that formats a listed item.
参数 ctext in varchar2 DEFAULT NULL
cclear in varchar2 DEFAULT NULL
cdingbat in varchar2 DEFAULT NULL
csrc in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates ctext
htp.ulistOpen
语法 htp.ulistOpen (cclear, cwrap, cdingbat, csrc, cattributes);
作用 Prints an HTML tag that is used to open an unordered list that presents listed items separated by white space and marked off by bullets.
参数 cclear in varchar2 DEFAULT NULL
cwrap in varchar2 DEFAULT NULL
cdingbat in varchar2 DEFAULT NULL
csrc in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates
htp.ulistClose
语法 htp.ulistClose;
作用 Prints an HTML tag that ends the unordered list.
参数 none
Generates
htp.olistOpen
语法 htp.olistOpen (cclear, cwrap, cattributes);
作用 Prints an HTML tag that is used to open an ordered list that presents listed items marked off with numbers.
参数 cclear in varchar2 DEFAULT NULL
cwrap in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates
htp.olistClose
语法 htp.olistClose;
作用 Prints an HTML tag that ends an ordered list.
参数 none
Generates
htp.dlistOpen
语法 htp.dlistOpen (cclear, cattributes);
作用 Prints an HTML tag that starts a definition list
参数 cclear in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates
htp.dlistClose
语法 htp.dlistClose
作用 Prints an HTML tag that Ends a definition list
参数 none
Generates
htp.dlistDef
语法 htp.dlistDef (ctext, cclear, cattributes);
作用 Prints an HTML tag that is used to insert terms, and their corresponding definitions in an indented list format. The htp.dlistTerm must immediately follow this tag.
参数 ctext in varchar2 DEFAULT NULL
clear in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates ctext
htp.dlistTerm
语法 htp.dlistTerm (ctext, cclear, cattributes);
作用 Prints an HTML tag used to insert the definition term inside the definition list. This tag must immediately follow the htp.dlistDef.
参数 ctext in varchar2 DEFAULT NULL
cclear in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates ctext
htp.menulistOpen
语法 htp.menulistOpen;
作用 Prints an HTML tag that begins a list that presents one line per item, and appears more compact than an unordered list. The htp.listItem will follow this tag.
参数 none
Generates
htp.dirlistOpen
语法 htp