快捷搜索:

Oracle Web应用开发之Apache架设与PL/SQL页面设计(

Oracle有多种措施在网页上显示数据库中的数据,如JSP或XML编程。在Oracle8i/9i中利用开拓职员可以自由应用Java或PL/SQL,把PL/SQL代码嵌入网页中实现营业逻辑的页面便是PSP页面。

PSP页面及其运行情况Apache mod_plsql模块

Oracle 数据库中的Oracle HTTP Server组件便是Apache办事器,在Oracle8i/9i中吸收PL/SQL调用的Web组件便是Apache的mod_plsql模块,该模块为Oracle数据库产品,在Oracle9iAS中的Oracle Portal中同样包孕,本文不先容Oracle9iAS中的Web办事。mod_plsql模块模块供给了在Apache、Oracle Portal和数据库之间的缜密的综合性和安然性,并改良交互感化和经Web哀求调用的法度榜样的履行环境。

Portal开拓对象箱(Portal Development Kit,PDK)的两个主要特征是完全用PL/SQL实现的PDK -PL/SQL和用Java实现调用接口的PDK-Java。它们都能造访Web资本或数据库办事器,两者都能调用Java法度榜样,假如Java法度榜样被导入数据库中,可以从PL/SQL调用它们。下面是组玉成部Portal情况的组件列表:

1.Oracle Database Aerver

2.HTP/HTF包和对象(PL/SQL Web Toolkit)

3.Portal procedures(Portal进程)

4.Portal Schema(数据库表)

5.Oracle 9iAS Application Server(及Logon Server)

6.Apache HTTP Server

7.Mod_PLSQL Apache Plug-in

8.Portalets

9.External images(外部图象)

10.建立利用法度榜样必要的Tables和数据

Oracle 9iAS Application Server和Apache HTTP Server是布局中的底层部分,它们成为开拓中的最紧张的部分之一。Listener和Mod_PLSQL网关是配对的,Listener自身是个完备的Apache HTTP Server,它的感化是治理HTTP样式哀求的进程。Mod_PLSQL网关认真互换数据收支数据库。Mod_PLSQL网关包括为了和Net8交流的整个需要信息。Oracle把Apache HTTP Server和Mod_PLSQL网关都作为Oracle9iAS和数据库安装的一部分进行安装。

下面阐明当在浏览器浏览网址http://localhost/pls/simpledad/show时(结果如图1所示)办事器的相应历程。

图1

Apache 监听 器是一个HTTP办事,处置惩罚所有经由过程哀求端口(默认端口为80)的哀求,哀求首先路由到本地主机。由于哀求字符串中包孕"pls",即虚拟目录,该字符串(表示哀求的实际字符串是可设置设置设备摆设摆设的,此处为默认设置设置设备摆设摆设)的定义在$ORACLE_HOMEapachemodplsqlcfgplsql.conf文件中,Apache根据这一文件识别出"pls"是一个PL/SQL哀求并且把履行义务通报给PL/SQL模块(mod_plsql)。mod_plsql随后查看网址字符串的剩下部分。"simpledad"是数据库造访描述符(Database Access Descriptor,DAD),它给出关于mod_plsql如何被连接到数据库中去履行哀求的信息,可以设置设置设备摆设摆设多个DAD,它包孕用户名、密码、认证要领、路径又名等信息。“show”为mod_plsql履行的PL/SQL历程,假如在URL的着末没有指定历程名,则mod_plsql会查找默认的历程名,此默认历程名也可在DAD中设置。历程运行并发送结果(应用PL/SQL Web Toolkit天生的)到HTTP缓冲区中,当历程履行完后,HTTP缓冲区的内容经由过程mod_plsql和Apache返回到浏览器。历程可以直接应用PL/SQL Web Toolkit编程,也可以经由过程loadpsp敕令行对象把PSP页面加载到数据库中天生历程,浏览PSP页面只需在URL中以历程名结尾即可,不需扩展名“.psp”。

必要留意的是,在Portal体系中,可以由文件夹和文档来治理用于显示在浏览器中的图象和多媒体,而本文在仅安装Oracle数据库时,图片等多媒体类型的文件必须寄放在“$ORACLE_HOMEapachemodplsqlcfgimages”路径下,并且在PSP页面中调用时应用路径“admin_/images/”。

图4

4.在SIMPLEDAD的编辑页面中,改动Oracle 用户名为cf,Oracle 口令为cf,Oracle 连接字符串为db:1521:o90,假如网关在所连接的数据库以外的其他Oracle主目录中运行,则必要TNS连接字符串。此外,也可应用以下款式的组合字符串来替代TNS连接字符串,即:

:。是运行数据库的主机名,

是TNS 监听法度榜样 监听的端口号,是数据库例程的Oracle SID名称。为了获取最佳机能,请维持网关的数据库连接池处于打开状态。网关应用"文档造访信息"向与此数据库造访描述符关联的数据库上载或下载文档。默认环境下所有文档都将以BLOB类型上载。经由过程在Long Raw字段中指定以逗号分隔的文件扩展名,可以覆盖此默认设置。此字段的"*"值将使所有文档以Long Raw 数据类型上载。"文档造访历程"指定用于造访文档的虚拟路径。"文档造访历程"字段指定网关处置惩罚文档哀求所调用的历程。此处都应用缺省值。假如经由过程此网干系接的利用法度榜样支持将绝对路径映射到关键字,可以指定关键子,本例中此处为空。设置完该页面后返回上级页面。

图5

5.下面设置全局网关。在如图3所示的网关设置设置设备摆设摆设菜单中选择"网关全局设置",如图6所示,将第5步中编辑改动的数据库造访描述符SIMPLEDAD作为默认全局网关的DAD。

图6

编写存储历程和网页代码

本实例的数据库工具都在cf/cf操作模式下。数据库情况为Oracle9.0.1,带有Oracle HTTP Server安装(已自动安装mod_plsql模块),未安装Oracle9iAS及其任何组件。

法度榜样阐明:第1行标识出该页为PL/SQL说话文件。第2行指出即将为该页面天生的PL/SQL历程名,着末PL/SQL页面将要调用数据库中的该历程来显示数据,假如省略该行则以文件名作为缺省的历程名。第3行径即将天生的历程的输入或输出参数,以标记阐明,default="1001"阐明该参数为可选参数,留意,纵然是数值数据类型,也要用双引号括起。第4至11行径该PSP网页的全局参数,同时也是历程show的局部参数,以标记表示。接下来以全局参数调用已经存储在数据库中的历程show_student,法度榜样代码前后分手被置以标记。当然也可将第二步中的历程show_student的编码直接写入以标记括起的法度榜样中,然则为了实今世码与内容的分离,只管即便不要把它们混在一路。这样做的好处是分离营业逻辑与表示层,使得法度榜样布局清晰,由于可能还有其它PSP页面调用该存储历程。在页面显示部分对全局参数的调用款式为标记,这也是输出标记,该标记可以实现字符串的连接和变量的谋略,如经由过程psp_id的加减1达到翻页目的。在链接标记">中,留意show为已经存储的历程,用"show?id="的款式调用历程并输入参数。 <%@ show language="PL/SQL"%> <%@ plsql procedure="show" %> <%@ plsql parameter="id" type="NUMBER" default="1001"%> <%! psp_id    student.id%TYPE:=id;%> <%! psp_name   student.name%TYPE;%> <%! psp_dob    student.dob%TYPE;%> <%! psp_gender  student.gender%TYPE;%> <%! psp_classyr  student.classyr%TYPE;%> <%! psp_major   student.major%TYPE;%> <%! psp_email   student.email%TYPE;%> <%! psp_photo   student.photo%TYPE;%> <% show_student (  p_id     => psp_id ,  p_name    => psp_name ,  p_dob    => psp_dob ,  p_gender   => psp_gender ,  p_classyr  => psp_classyr ,  p_major   => psp_major ,  p_email   => psp_email ,  p_photo   => psp_photo ); %>

         门生信息           " width="172" height="191" align="middle">    编号为<%=psp_id%>的门生的资料如下:        编号:<%=psp_id%>        姓名:<%=psp_name%>        出生日期:<%=psp_dob%>        性别:<%=psp_gender%>        年级:<%=psp_classyr%>        主修课程:<%=psp_major%>        电子邮件:<%=psp_email%>                      ">上一页

">下一页

4.应用Oracle敕令行法度榜样

您可能还会对下面的文章感兴趣: