Oracle WebServer是一个与Oracle7 Server紧密集成的HTTP服务器,能够由存储在 Oracle数据库的数据建立动态HTML文件。当数据改变时,这些HTML文件也自动更新,而不需要站点管理员的参与。这种方法用动态地实时地反映基于Oracle7服务器的商 务系统中的当前数据,而不是当今大多数站点上可见到的静态的或不变的数据显示。
商务数据是存储在oracle7数据库中的。它在服务器中被格式化为Web文档,然后传输给Web客户机。所有数据只存储一次,依据Web上的使用需要而定期进行“快照”。
Oracle Web Listener. Oracle Web监听程序接收使用任何浏览器的用户发出的请求。对于静态(基于文件的)页面请求被监听进程立即处理,其功能即是一个HTTP 服务器。
Oracle Web Agent. Oracle Web 代理处理来自拥护的对于动态页面的请求。它将连接转向Oracle7 Server, 调用请求的过程,并将结果HTML文件返回浏览器。
Oracle WebServer Developer''s Toolkit. Oracle WebServer 开发者工具箱是一个帮助用户创建生成动态HTML文件的过程的集合。
Oracle7 Server. Oracle7 Server 为关系型表的数据和所有用于创建HTML页面的程序逻辑提供存储。
Oracle Web 监听程序是个商业品质级的HTTP服务器,为来自任何Web浏览器的文档请求进行服务。 客户端可以位于使用标准HTTP协议的网络的任何地方。在此协议之下,文档的类型与文档本身一起发往客户端。Web Listener支持多种不同的文档类型。客户端解释并且显示相应的文件,或者将文件传给处理该文档类型的特定程序。例如,在客户机上MPEG viewer将接收由新闻广播宕下来的视频片段。
Oracle Web Listener可以处理大量的模拟请求,并具有比目前市场上的HTTP服务器 更有效利用系统资源的高级特性。这些特点将在"Oracle Web Listener"中详细论述。
Oracle Web Listener接收到一个来自客户机的请求后,他首先判断它请求的是一个 静态文件还是动态文件。如果请求的是静态文件,Web Listener将文件和相关的类型信息直接发给客户端。如果请求的是动态文件,它由一个由Web Listener启动的程序在“飞行中”("on the fly")创建,且与公共网关接口(CGI)兼容。CGI是一个使HTTP服务器能够运行程序并将程序输出作为一个文件发送给用户。大多数HTTP服务器都支持此接口,Oracle Web Listener 遇到一个数据库存储过程的请求时,使用该接口调用Oracle Web Agent。另外,其他任何可执行的程序均可以通过CGI调用。
Oracle Web Agent是 Oracle Web Listener当接收到一个对数据库存储过程的请求时调用的的一个程序。它处理与Oracle7 Server建立连接的细节。Web代理使用作为Web Agent service的一部分的指定的数据库用户名和口令,来连接到单一的Oracle7 Server。为了连接到不同的服务器,或者同一服务器的不同模式,可以在一个Oracle WebServer上可以配置多个Web Agent 服务。这在准确地控制了Web客户端能够访问的信息的同时,也允许创建从多个不同的数据库汇合数据的应用的极大灵活性。
Oracle WebServer开发者工具箱是一个帮助用户快速使用Oracle WebServer建立Web应用的一个PL/SQL例程集合和样例应用。样例应用可以作为用户应用的模板。经过简单的修改以包含用户站点的特定的文本和图形,这些样例就可以迅速简单地为特定的站点所客户化。
当Oracle Web Agent登录到Oracle7 Server时,它启动一个已由用户创建的用于生成HTML页面为输出的PL/SQL过程。开发者工具箱中的过程和函数生成实际HTML标记,所以将注意力集中在应用的内容上,而不是HTML的特性上。
Oracle7 Server是一个高性能,容错的关系型数据库管理系统,专门为联机事务处理和大型数据库应用而设计。Oracle7 Server能可靠地管理在多用户环境下的大量的数据。Oracle7 Server即使在很多用户并发地存取数据时,也能提供高性能。它对于未授权访问也是安全的,并提供失败恢复的有效方案。
Oracle Web Agent是当Web Listener收到一个动态文档请求时执行的CGI程序。此程序登录进数据库并执行作为URL的一部分而指定的PL/SQL存储过程。
BC5 m bLhD"tKrU 作为开发Web Agent的PL/SQL工具,WebServer Developer''s Toolkit包括以下包:
<rX(RIA co,SHQz HTP (超文本过程) 和 HTF (超文本函数) 简化了在用户的PL/SQL代码里 生成HTML标记的工作。 HTP和HTF自动生成由Oracle Web检索的HTML标记。
2ICJcSt{ '~YR e>N& OWA_UTIL 包含了能使程序员更快速构造HTML输出的实用函数。
wzhD1UUx fAx63rij7 注意: Web Agent 也包括一些叫OWA的PL/SQL包,它包括一些由Web Agent调用的进行诸如设置CGI环境变量和从PL/SQL表中提取由PL/SQL代码生成的输出等实用功能。一个PL/SQL开发员不能直接调用OWA包,虽然它可以用用户通过URL直接调用。
]0u"Q(D= ^tc!hhc Oracle WebServer Developer''s Toolkit的进一步信息见第四章。
Mls/y4$w $g)}]vg 谁使用Oracle Web Agent
#nKm r Oracle Web Agent 可以被以下人使用:
8=f_3[/. x-wWVI 想开发与oracle7互操作的Web应用的程序员。Oracle Web Agent允许程序员创建 PL/SQL过程来进行数据库操作并将结果格式化为HTML文档。这些文档被返回Web 客户端。所以,程序员需要了解以下知识:
JLw D}4 K/i a~P 用于生成HTML格式文档的超文本函数和超文本过程。
hGR}iz9 PL/SQL过程语言的基础。
#dYW :i 另外,以下知识对于程序员也非常重要:
R(* ~E 哪些公共网关接口的变量 对于 PL/SQL应用是有效的,以及如何存取它们。
xVa PTR Web Agent如何处理参数 (本章介绍)
mrGoMS0h 如何使用OWA_UTIL PL/SQL实用包 (, "The WebServer Developer''s Toolkit".中介绍)
&4'z18 e 想安装和设置Oracle Web Agent,并用管理员工具维护Web Agent的系统管理员。
3C#Dxd]h& 管理员需要了解以下知识:
yXKoG6o 如何创建,修改和删除Web Agent服务。
Nu5|S bn 在哪里安装由Web Agent提供的开发工具PL/SQL包。
(*-Km-1U` 下述信息对管理员也十分有用:
5wCoD]1/^1 Oracle Web Agent如何工作 (本章讲述)
){n}lw7 Web Agent如何处理错误 (本章讲述)
_3s7pV di7l5 3.1 Oracle Web Agent如何工作
1~nBM$xv Oracle Web Agent使你能用开发工具箱创建PL/SQL存储过程来存取Oracle7的数据,动态生成来自那些数据的HTML文档,并将文档返回给客户端。
\%<6B/ zt \X3-: 7{ 下面描述一下Oracle Web Agent是如何一步一步工作的:
%vjU.PQ \zp v 1. 用户从浏览器提交一个URL。
~<>U v@x 用户以下列方法之一提交URL:
9f=:#DF 通过从HTML页面上选择一个链接
LE2s8lH-6 在其浏览器的打开URL框中指定一个URL
"2"b760<Y 提交HTML表格
MCJU{DC# D/zBi'B1Qf 此动作触发了一个与URL相关的GET或POST请求方法操作。请求方法使用HTTP协议传给了Web Listener。
uD$ Z9ySiz*",g 2. Web Listener 启动了 Web Agent.
(,MtT/H Web Listener判断此URL是否与Oracle Web Agent有关(通过抽取URL的/owa部分),并调用Web Agent。为与CGI标准兼容,Web Listener使几个环境变量对Web Agent有效.
6%%%we &XB:#TGl 3. Web Agent连接到Oracle7 Server.
$a3!H 为连接到Oracle7 Server,Web Agent要求一些诸如连接到哪个服务器,使用什么用户名和口令等信息。这些信息作为Web Agent的一部分,存储在位于OWS管理目录下的文件owa.cfg 中。Web Agent通过解析环境变量SCRIPT_NAME来决定使用哪个服务,环境变量SCRIPT_NAME是由Web Listener根据CGI 1.1说明书设定的。
qF6ED,ZoK 5/{5)6+@Y Web Listener从URL中/owa 前面的路径段推出这个环境变量的值。例如,如果/ows-bin/hr/owa是URL的前边部分,那么hr就是要使用的服务。
\t-wc= yIY`*>7B" 有关如何设置Web Agent service的进一步的内容, 请见本章后面的"Web AgentService"一节.
?xvL-"wIB 5!G*:;: 4. PL/SQL 过程被调用
/>kV!&/] 连接到数据库后,Web Agent调用相应的PL/SQL过程,其名字通过解析环境变量PATH_INFO获得。
N DF |:o }Chu> <'D 如果PL/SQL过程要求参数,这些参数已经由Web Listener通过环境变量QUERY_STRING或标准输入(这依赖于请求方法是"GET"还是"POST")传给了WebAgent。Web Agent将把这些参数传给PL/SQL过程。
Br3,r& / i/N=;)gG 有关PATH_INFO, SCRIPT_NAME,和QUERY_STRING 以及Oracle Web Agent如何使用他们的内容, 请见本章后面的"Web Agent如何使用CGI环境变量"一节.
OLsA:/L Re `%N/ 5. PL/SQL过程执行, 生成 HTML 文档.
Y'+T*)fC 在Developer''s Toolkit的帮助下,PL/SQL过程从Oracle7数据库中提取出数据并在PL/SQL表中生成了HTML文档。
YCIK_z M[R>kiy 有关Developer''s Toolkit的内容请见第四章"Oracle WebServer Developer''s Toolkit."
bS\8I0P ^V\u%l>N 6. Web Agent将生成的HTML文档传给Oracle Web Listener.
F<GnA~$\ 如果PL/SQL过程成功结束,Web Agent将从PL/SQL表里取出生成的HTML文档,并把它发送到标准输出,那里是Web Listener期望CGI应用把他们的输出发送到的地方。
8Q(j.G+D wo!L)W 如果PL/SQL过程返回错误,Web Agent则把程序定义的出错页面发送到标准输出。
%a>'X7N d :8!Ds WO 有关如何处理错误的内容请见"Oracle Web Agent Error Handling"一节。
?g$E@8 aR ~D.P 7. Web Listener把 HTML文档发送回原发出请求的浏览器
bhNI8#pv Web Listener使用HTTP将HTML文档发还浏览器。浏览器并不知道请求的文档是在飞行中生成的,把它象任何其他HTML一样显示在屏幕上。
}u -{EsZ ):,TM Web Agent服务 Service
Mpq 59zU 因为人们希望单个Web Listener能够访问多个数据库或一个数据库里的多个模式,Oracle Web Agent支持服务的概念。我们用下面的例子描述一下服务的概念:
_K+Z+1x Ir;pO@N 公司A想让他们存储在Oracle7数据库中的数据可以被公众通过Oracle Web Listener访问。然而公司内不同部门对数据库以用户名为分割的不同部分(模式)有访问权限。
;JCH ujV &8lC(7t 所以,人力资源部和财务部使用不同的用户名/口令组合来登录数据库。如果他们都想用使用Oracle Web Agent的CGI应用访问他们的数据,Web Agent需要使用正确的用户名/口令来登录数据库。采用这种方案,含有配置信息的owa.cfg文件中包含两个服务,HR 服务和AP服务。每个服务有相关的用户名/口令,ORACLE_HOME参数,和ORACLE_SID参数。当一个来自浏览器的请求到来时,Web Listener从URL中抽取出服务名并读取owa.cfg文件找出将使用的参数。
A\ &XX\K L ,oQ *&Q~o 为连接到Oracle7服务器,Web Agent需要在Web Agent服务中指明以下信息:
cn\Z#<3 gk2Xww(~ username 用户名
%K qG password 口令
-D9.bp)J ORACLE_HOME
k_pkfvEy ORACLE_SID (仅对本地数据库)
'UUw5ZMy SQL*Net V2 Service Name or Connect String (仅对远程数据库)
<s\q$ Administration Utility允许管理员显示,创建,修改或删除Web Agent服务。用创建
% ku{n'< Web Agent的表格,你不需要直接修改配置文件owa.cfg。参见 "Creating or Modifying Web Agent Services," 。
i2;P&^\ct @r(GI=z' 下面是一个owa.cfg文件中Web Agent服务项的例子,每个参数有相应的解释。
=E,/N`9bnQ "v)z/'F9 Developer''s T#
2?v] D1 4CeUc (
I PP[z{ owa_service = es
|LKVb]R,f (
n#WE#-jhH owa_user = www_es
gJ8yVS#aU )
-qPWtN?a (
i:l5=s1 owa_password = tiger
(8 GQ\ )
<@&B`h (
\zxZkU} oracle_home = /opt/oracle7
G4`py6=9a@ )
jhR D] (
gfgJzuX-W oracle_sid = esprod
>Pt=$89 )
1H||\;:> (
>c^MYQF owa_err_page = /es_err.html
2pC8MX: )
m8w2zMA (
mygZ%l 58 owa_valid_ports = 8000 8888
Y$A4;J )
LtV <w&zp (
4KI-.e~o owa_log_dir = /opt/oracle7/ows/log
= 42@4&c )
ZJ{ >1/[s (
6>H"HWa owa_nls_lang = AMERICAN_AMERICA.US7ASCII
[$.h7~\@] )
1}j.Sg4>]- )
61U"owr* owa_service
MnT/2:@! Web Agent 服务的名字
} >3)1Yb owa_user
6uD|pwLL Web Agent连接数据库用的数据库用户名。
vgd62<TF owa_password
hMUw)r8bZ Web Agent连接数据库用的数据库口令。
(fp/Df>`- oracle_home
n@u'?9t Oracle7代码树在文件系统中的位置。它应该是Web Agent服务连接到的数据库的ORACLE_HOME,除非Web Agent设置为通过SQL*NET连接到一个远程数据库。这种情况下,指定Web Agent所在的ORACLE_HOME。Web Agent总是安装在ORACLE_HOME目录或其子目录下。
-xTW'QEq< oracle_sid
"yz]&^xc 将连接到的数据库的系统ID名。连接到远程数据库时,不要使用。
+3;=I >jH[#i9 ^Z owa_err_page
C8imxWDD Web Agent调用的PL/SQL过程发生错误时,Web Agent返回的HTML文档的路径。这是个实际路径,而非Web Listener配置中的那种虚拟路径。
5\8u I q>a$1ba#/ owa_valid_ports
=}ek[yk> Web Agent将服务的有效的Web Listener网络端口。
,,>%-i{D T~>v;B&. owa_log_dir
*ZB0 Ph4f Oracle Web Agent写出错文件的目录。出错文件的名字为service_name.err。
_{P4Kosj? u2BNsZn F< owa_nls_lang
f;_St yW Web Agent连接的Oracle7数据库的NLS_LANG。若不指定,Web Agent管理程序当服务执行时寻找数据库的NLS_LANG。
"><Fsmd% cJ|:JCH 5AH$&.'#' Web Agent如何使用CGI环境变量
^kue5yg/ Web Agent使用的环境变量见表3-1:
=<\$\H C 变量 包含
c x+cky+ REQUEST_METHOD GET 或 POST
]Udmxs,5- PATH_INFO 将调用的PL/SQL过程的名字。
QUqg?-'v SCRIPT_NAME 包含登录Oracle7时用的Web Agent和服务 。
<8vSe) QUERY_STRING PL/SQL过程的参数(仅对GET方法。POST方法的参数通过标准输入传递。)
w \dl|]uR 表 3 - 1. Oracle Web Agent使用的CGI 变量
uu#wH bxe PP_-3} 下面是一个典型的URL如何被与CGI 1.1说明书兼容的Web Listener解析的例子。
\l XQ!$ 4:DXwMm9 C http://www.nhl.com:8080/ows-bin/nhl/owa/hockey.pass?person=Gretzky Y n=1oou 1. 子串
http://www.nhl.com:8080 表明Web浏览器要用HTTP协议连接到
www.nhl.com主机的端口8080上。
Dl3\.QX 2. 当运行在
www.nhl.com上的Oracle Web Listener接收到请求,子串/ows-bin/nh
本章描述组成Oracle WebServer工具箱的 超文本过程,超文本函数和实用程序。 |99cy?6<R
M(u@b{d
Oracle Web Agent的主要目标之一就是PL/SQL程序员熟悉World Wide Web技术。 aO.6qKBs
}Te-> !<M
从这一点,Oracle WebServer包括了由几个PL/SQL组成的开发包以以最小化程序员对HTML语法的要求。虽然程序员仍然要求有HTML的工作知识,但使用工具包,他们不需要在PL/SQL过程中写HTML标记实际语法的的硬编码。例如,程序员要求实现一个必要的锚,但他不需要知道生成一个锚的字符的实际序列。 wg^ 2&!#
{ Un <n
Oracle WebServer开发包包括下列PL/SQL包: PA"tMqz
6+[!Wo[L
超文本过程 (HTP) sb)PS ;C
一个超文本过程 在HTML文档中生成包含与其名字相对应的HTML标记的一行。例如,htp.anchor过程生成一个锚标记。HTP包是三者之中最常用的包。 超文本函数 (HTF) ,1)@i`]8
G)9uEV
一个超文本函数返回与其名字相应的HTML标记。然而, 因为HTML标记不能通过Web Agent,所以不能直接调用HTF函数本身。HTF函数的输出必须通过htp.print,才能真正成为HTML文档的一部分。所以,下面一行: ")L lY
htp.print(htf.italic(''Title'')); CTO[ VO$
功能上等价于 : npMK).a
htp.italic(''Title''); p9zkoC4
每个超文本函数(HTF)有一个相对应的超文本过程(HTP)。所以HTF函数通常仅用于编程时需要嵌套调用的情况,例如: &$ BEa_dfj
htp.header(1,htf.italic(''Title'')); +( 2|D
此例中,''htf.italic''将生成如下字符串: $:"&wAEE
Title KaE6 %
该字符串传给过程''htp.header''后,在格式化的HTML文档中将出现如下行: U3aW'FuL$
l$^sYd6
Title /`Ckn\[
_s "en4X
OWA Utilities (OWA_UTIL) OWA实用程序一个有用的实用过程和函数的集合。他们的目的包括从在HTML页上打印一个符号标记到简便地把Oracle表格式化为HTML格式。 },/<]bF]y
(:^i48gT
OWA OFTVKwCT
一个仅供Oracle Web Agent自己调用的过程集合。此包中的任何子程序都不能在用户开发的PL/SQL中直接调用。 OS"xR ly
hhgF H
4.1 安装Oracle WebServer开发者工具箱 "y,?r`I}Da
bdB+PNmn(
开发者工具箱的安装,使用OWA服务管理表格。在服务建立和修改页面上均有是否安装开发者工具箱的检查框选择。选择它并提交表格将做如下事情: #vwG;!i
\DlH w
将CONNECT和RESOURCE角色授权给OWA数据库用户。 zm N35q
__ e'_g
执行SQL脚本OWAINS.SQL,该文件可以在OWS管理目录下找到。若手动运行,应使用 SQL*DBA或Server Manager。若想在SQL*Plus里运行,看脚本头去找步骤。 ,A[ :pF
2o0RF=-m
脚本 OWAINS.SQL 将安装开发者工具箱的所有包。 fW2Q2>c
ehL -z/q|
优化多服务的安装 >XV *{)
如果你的站点有多个Web Agent服务, 你可以按照下列步骤来最小化存储空间的占用量并增强PL/SQL的性能: >@EG` 4=
,jopbVm
1.在一个数据库用户的模式下安装开发者工具箱,这个用户就是工具箱的拥有者。 X*cCLb
dc/w8aQB
2.从其他Web Agent服务的OWA数据库用户的模式下删除工具箱的PL/SQL包,如果 ' [W#
你已经安装了这些包的话。 *[l ? j
connect / )'`[]K\`
drop package HTF; A b)d]
drop package HTP; g#m;_q:
drop package OWA_UTIL; 9N)E:R#g
drop package OWA; DIe #L2y!*
3. 向其他Web Agent服务的OWA数据库用户授与在这些PL/SQL包上的EXECUTE权限。 P f8^n*S7
connect / (qK!%9F
grant execute on HTF to ; J+rt1
grant execute on HTP to ; >i'Izyr
grant execute on OWA_UTIL to ; [Z U)X 63
grant execute on OWA to ; (,H#+X3Lm
4. 在所有的OWA数据库用户中建立工具箱PL/SQL包的同义词。 u UodnM
connect / q'VDO04
create synonym HTF for .HTF; Pg2W[}X
create synonym HTP for .HTP; .w#V1zLU
create synonym OWA_UTIL for .OWA_UTIL; d1}taQ
create synonym OWA for .OWA; <DtS
Security Note 安全要点 vZo'SL]s9
PL/SQL 过程以PL/SQL代码的创建者的权限运行。对于Developer''s Toolkit, 这只关系到owa_util包. 两个子程序, showsource和tableprint,存取用户的数据。此包上的执行权限只能授给允许访问owa_util拥有者的表,视图和PL/SQL存储代码的拥护。 fN[pP(
{C4*?
如果你的安装要考虑安全问题,为每个OWA数据库用户安装独立的owa_util包。 @{Gggl=
mSWp73U=;5
作此事的脚本如下: ^-H F5p-
[umQCc,Fp
PUBUTIL.SQL DO6*9\
PRIVUTIL.SQL bx{(_gcqjo
它们都在OWS管理目录下,应按所列的顺序执行。 <]0=(E~
List Tags 列表标记 R cyI#y /
List tags allow you to display information in any of the following ways: } h*K:xF]
Y$C`m
ordered: these lists have numbered items 'dQFSCh|'
unordered: these lists have bullets to mark each item !'m9l=
definition: these lists alternate a term with its definition r!Cqmb>oU
Note: All the hypertext procedures (HTP) shown in this section are also available as hypertext functions (HTF). ]p ?Ibw1
-OjW I/{
htp.listHeader G+>Z#mZ8%q
语法 htp.listHeader (ctext, cattributes); hZ%;wkD
作用 Prints an HTML tag at the beginning of the list E\WqIT.xo:
参数 ctext in varchar2 S%Jz>U3->
cattributes in varchar2 DEFAULT NULL {i$P+td
Generates ctext X3mjF{,}R%
Y _(1c
htp.listItem .BF)]5dI
语法 htp.listItem (ctext, cclear, cdingbat, csrc, cattributes); eGU@2_(rE
作用 Prints an HTML tag that formats a listed item. #(]~8.M
参数 ctext in varchar2 DEFAULT NULL 4o[]h"
cclear in varchar2 DEFAULT NULL H&]f4C6p]
cdingbat in varchar2 DEFAULT NULL Zx{(Tj._
csrc in varchar2 DEFAULT NULL 0OR] h3!;w
cattributes in varchar2 DEFAULT NULL ?iOe,erC
Generates |ui+4mg|
ctext =\b1JVy
IBwFrtNS
htp.ulistOpen /o(v#@GMV
语法 htp.ulistOpen (cclear, cwrap, cdingbat, csrc, cattributes); =4hiQpvTV
作用 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. 3oe@x-l
参数 cclear in varchar2 DEFAULT NULL t6=x6s
cwrap in varchar2 DEFAULT NULL RsAch<
cdingbat in varchar2 DEFAULT NULL pS|V,,/=
csrc in varchar2 DEFAULT NULL ($#U9 (
cattributes in varchar2 DEFAULT NULL O6/LMx ku
Generates 8:ncSa
] H~ni G\
@?u: ;P+1
htp.ulistClose pL1!||]{K
语法 htp.ulistClose; JP=4I9._h
作用 Prints an HTML tag that ends the unordered list. # M 6 rM^s
参数 none B@I5#" x
Generates TO bM.;NW
n&,mxNRKm
`w0LK[ce0
htp.olistOpen a_+%U$
语法 htp.olistOpen (cclear, cwrap, cattributes); w|"6
作用 Prints an HTML tag that is used to open an ordered list that presents listed items marked off with numbers. u~^F O
参数 cclear in varchar2 DEFAULT NULL P9{5Y-
cwrap in varchar2 DEFAULT NULL pN/:5N(/r
cattributes in varchar2 DEFAULT NULL O>C7q]|
Generates ,gh*m{1 0
-1+;8dr&
Dg;s,;8H
htp.olistClose 4FsCa
语法 htp.olistClose; C 6'` y
作用 Prints an HTML tag that ends an ordered list. k(0=NqE
参数 none Rr!*BS%
Generates vV3u8 QA
D}M ttr!
;*RK/eo
htp.dlistOpen 7CX4diJ
语法 htp.dlistOpen (cclear, cattributes); M{ ?[5]
作用 Prints an HTML tag that starts a definition list $:#F 4\5
参数 cclear in varchar2 DEFAULT NULL ;<G_6Cq.
cattributes in varchar2 DEFAULT NULL @j=>D=Wfd
Generates }yTW FA
>[<;7k?>
JtoRwdc
htp.dlistClose NGcD&AB-
语法 htp.dlistClose 2:Or7 &&4
作用 Prints an HTML tag that Ends a definition list `"!EU|E)(
参数 none $}Vs%+]y
Generates 3(z2QcCS&
iHg;kMR
iTaF8*-fq
htp.dlistDef S29D_jNU
语法 htp.dlistDef (ctext, cclear, cattributes); CdDac0x
作用 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. 55(@/6*
参数 ctext in varchar2 DEFAULT NULL h6 N'@}g
clear in varchar2 DEFAULT NULL $! cN\ys
cattributes in varchar2 DEFAULT NULL IN%HE'
Generates +U U<Enh(^
ctext Cb#3=R>^~
'OM;v
htp.dlistTerm *S#Vq-
语法 htp.dlistTerm (ctext, cclear, cattributes); a5>%D/<Ud,
作用 Prints an HTML tag used to insert the definition term inside the definition list. This tag must immediately follow the htp.dlistDef. ~dkg/r~'p_
参数 ctext in varchar2 DEFAULT NULL #pYt<CW
cclear in varchar2 DEFAULT NULL Fw@-:Kp@|
cattributes in varchar2 DEFAULT NULL ir g*n8{%
Generates [fQ=-Y5l3C
ctext , UqDK
7() Mu
htp.menulistOpen YMa!}9<)
语法 htp.menulistOpen; b%K>:
作用 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. %w(PwRD
参数 none l` WjC.2q
Generates gDW !\5(
+{- >jf
_K]u wR
htp.menulistClose J5nmX,`
语法 htp.menulistClose; A19I3 =
作用 Prints an HTML tag that ends a menu list. o\f/] hD
Paramenters none :7!5EH
Generates O;U#4"gjf
dw>%+
~"vbtuO}}
htp.dirlistOpen Dl1JBr
语法 htp