动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.Oracle:大数据的备份.
.Oracle9i学习笔记.
.怎么样格式化磁盘.
.OLTP和DSS不同数据库设计.
.不让redo log日志组处于高激活状.
.Oracle数据库的空间管理技巧.
.字符掉下来.
.oracle 学习笔记之一.
.Linux_FAQ之四:系统配置.
.Oracle中独一无二的Cache对象.
.改tcp/ip协议栈屏蔽nat的尝试.
.Oracle数据库中大型表查询优化的.
.oracle9i中list partitioning方法.
.修改oracle的数据文件.
.谈谈在ORACLE下开发JAVA程序的问.
.TestKing Oracle 1Z0-007 Edt4.1.
.redflag认证系统管理部分笔记.
.一个控制文件被损坏,如何启动?.
.PL/SQL流程控制.
.ORACLE DATE和TIMESTAMP数据类型.

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

发表日期:2008-2-9 |



  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所示)服务器的响应过程。
  
   Oracle Web应用开发之Apache架设与PL/SQL页面设计(图一)
  图1
  
  
  Apache监听器是一个HTTP服务,处理所有通过请求端口(默认端口为80)的请求,请求首先路由到本地主机。因为请求字符串中包含"pls",即虚拟目录,该字符串(表示请求的实际字符串是可配置的,此处为默认配置)的定义在$ORACLE_HOME\apache\modplsql\cfg\plsql.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_HOME\apache\modplsql\cfg\images\”路径下,并且在PSP页面中调用时使用路径“admin_/images/”。
  
  PL/SQL语言已经长时间作为Oracle数据库和开发环境的基础,Oracle本身是使用PL/SQL建立的,并且Oracle已经建立了从PL/SQL过程直接访问Html的方法,但太依靠于PL/SQL代码会使后来的可能不熟悉PL/SQL代码的开发者难于维护应用程序。使用PL/SQL页面表示层的优势之一是实现了表示层与业务逻辑的分离,业务逻辑以存储过程的形式存储在数据库中,优势之二是PL/SQL页面页面的运行取决于对数据库过程的调用,独立于应用服务器,在数据库缓存服务器支持下运行性能好。
  
  
  配置Apache的mod_plsql模块
  
  
  设置Apache Web 服务器中的mod_plsql模块来接收浏览器对数据库中的存储过程的调用。Oracle HTTP Server组件已经包含在Oracle9.0.1服务器中,使用缺省的端口和主机参数,配置文件$ORACLE_HOME\apache\apache\conf\httpd.conf不用修改。需要为Apache Web 服务器设置DAD,步骤如下:
  
  1.浏览网址http://202.99.18.136,也是本机地址或Apache服务器的主机地址.如图2所示。
   Oracle Web应用开发之Apache架设与PL/SQL页面设计(图二)
  
  
  图2
  
  
  2.打开组件mod_plsql的链接,如图3所示。
   Oracle Web应用开发之Apache架设与PL/SQL页面设计(图三)
  图3
  
  
  3.点击"网关数据库访问描述符设置",如图4所示。可以将新的数据库访问描述符添加到现有列表。此处配置的信息包括:用户名、口令、连接字符串、文档上载路径和过程、需要进行 long raw 上载的文件扩展名、路径别名和相关过程,以及确认连接的信息。本例中修改SIMPLEDAD,如图5所示。
   Oracle Web应用开发之Apache架设与PL/SQL页面设计(图四)
  图4
  4.在SIMPLEDAD的编辑页面中,修改Oracle 用户名为cf,Oracle 口令为cf,Oracle 连接字符串为db:1521:o90,假如网关在所连接的数据库以外的其他Oracle主目录中运行,则需要TNS连接字符串。此外,也可使用以下格式的组合字符串来替代TNS连接字符串,即::是运行数据库的主机名,是TNS监听程序监听的端口号,是数据库例程的Oracle SID名称。为了获取最佳性能,请保持网关的数据库连接池处于打开状态。网关使用"文档访问信息"向与此数据库访问描述符关联的数据库上载或下载文档。默认情况下所有文档都将以BLOB类型上载。通过在Long Raw字段中指定以逗号分隔的文件扩展名,可以覆盖此默认设置。此字段的"*"值将使所有文档以Long Raw 数据类型上载。"文档访问过程"指定用于访问文档的虚拟路径。"文档访问过程"字段指定网关处理文档请求所调用的过程。此处都使用缺省值。假如通过此网关连接的应用程序支持将绝对路径映射到要害字,可以指定要害子,本例中此处为空。设置完该页面后返回上级页面。
   Oracle Web应用开发之Apache架设与PL/SQL页面设计(图五)
  图5
  
  
  5.下面设置全局网关。在如图3所示的网关配置菜单中选择"网关全局设置",如图6所示,将第5步中编辑修改的数据库访问描述符SIMPLEDAD作为默认全局网关的DAD。
   Oracle Web应用开发之Apache架设与PL/SQL页面设计(图六)
  图6
  
  
  
  编写存储过程和网页代码
  
  
  本实例的数据库对象都在cf/cf操作模式下。数据库环境为Oracle9.0.1,带有Oracle HTTP Server安装(已自动安装mod_plsql模块),未安装Oracle9iAS及其任何组件。
  
  1.建立表student并插入7条记录。
  
  CREATE TABLE student
   (ID NUMBER(5,0) NOT NULL
   ,NAME VARCHAR2(15) NOT NULL
   ,DOB DATE
   ,GENDER VARCHAR2(2) DEFAULT '男'
   ,CLASSYR NUMBER(4,0) DEFAULT 2002 NOT NULL
   ,MAJOR VARCHAR2(25)
   ,EMAIL VARCHAR2(50)
   ,PHOTO VARCHAR2(100)
   );
  alter session set nls_date_format = 'dd-mon-yyyy';
  alter session set nls_date_language = 'AMERICAN';
  insert into student values ( 1001,'赵鹏','14-JUL-1975','男',2001,'History',
  '1001@NetUniversity.org','u1001.gif')
  /
  insert into student values ( 1002,'刘宇','08-OCT-1975','女',2001,'Science',
  '1002@NetUniversity.org','u1002.gif')
  /
  …………
  
  
  
  2.以帐户cf/cf建立存储过程show_student。

  
  create or replace procedure show_student
  (p_id     in out student.id%TYPE
  ,p_name     out student.name%TYPE
  ,p_dob      out student.dob%TYPE
  ,p_gender    out student.gender%TYPE
  ,p_classyr    out student.classyr%TYPE
  ,p_major     out student.major%TYPE
  ,p_email     out student.email%TYPE
  ,p_photo     out student.photo%TYPE
  )
  IS
  CURSOR get_student(p_id in student.id%TYPE DEFAULT 1001) IS
  SELECT * FROM student
  WHERE id = NVL(p_id,1001);
  student_row student%ROWTYPE;
  BEGIN
  IF p_id<1001 THEN
    p_id:=1001;  
  END IF;
  IF p_id>1007 THEN
    p_id:=1007;
  END IF;
  OPEN get_student(p_id);
  FETCH get_student INTO student_row;
  CLOSE get_student;
  p_name     := student_row.name;
  p_dob      := student_row.dob;
  p_gender    := student_row.gender;
上一篇:PL/SQL初学者必读:几十个实用的PL/SQL 人气:574
下一篇:PL/SQL入门 人气:559
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 HDWiki v4.0.1 bulid 081007 UTF
2008-10-7 迅易评选投票管理系统 v10.0
2008-10-7 HDWiki v4.0.1 bulid 081007 GBK
2008-10-7 Bitrac单用户博客 v1.14 bulid 0
2008-10-7 OpenX(广告管理系统) v2.6.2 多国
2008-10-7 乐铺网店系统免费普及版 v3.41
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成