webserver

正在看的ORACLE教程是:Oracle组件实现动态Web数据库。[摘要]本文简要介绍实现Web数据库的基本方法,讨论了利用Oracle的服务器选件之一WebServer结合PL/SQL和相关内置程序包实现动态Web的基本方法,并给出了一简单示例。
随着计算机互连网络的发展,Internet正成为世界各地进行信息交流的主要方式之一。作为Internet的一个重要组成部分,全球信息网WWW采用HTML形式组织信息,并用超链结的方式进行各种信息的集成与传递,具有界面友好,操作简单等特点,用户可直接利用Web浏览器进行方便的浏览、查询各种信息。因此,作为各机构组织和企业展示信息的窗口,Web服务器所能提供的信息量和功能就直接影响到其自身的形象和客户访问量。
在传统的Web服务器中,文本和其他信息都是以文件的形式来进行存储和管理的,向用户浏览器所提供的网页也大多是静态的。当用户在浏览器中输入HTML文档的URL时,则访问一个在WebServer上的文件,它只有在某个网络管理员在Web服务器上放置一个同名的新文件时才改变内容。随着WWW的应用领域的拓展,静态Web页也越来越不能满足信息服务的动态性、实时性和交互性的要求,这就要求将数据库技术与WWW结合起来,以实现对数据资源的高效存取。
1、用OracleWebServer构建Web数据库应用
Oracle8服务器是一个完善的信息管理环境。它是一个大量数据的储藏所,并给用户提供对这些数据的快速访问。它能够支持C/S结构进行分布式处理和Web计算等。利用其服务器选件之一的WebServer,可以提供实现Web数据库应用的强大功能。
一般来说,实现Web数据库应用可以在WebServer端提供CGI/API等中间件来连接WebServer和DBServer,也可以让用户通过Web浏览器把相关应用下载到客户端运行,在客户端直接访问数据库,如JavaApplet,ActiveX,Plug-in等。本文主要介绍利用Oracle8提供的PL/SQL和其功能强大的内置程序包来编写程序以实现动态的Web应用。属于利用中间件开发的一种。中间件负责管理WebServer和DBServer之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面再通过WebServer返回给用户浏览器。其一般结构如下所示:
Web浏览器←→Internet←→WebServer←→CGI/API←→OracleDBServer 2、PL/SQL
Oracle从其版本6开始支持一种过程处理语言PL/SQL,并将其作为所有Oracle工具的标准编程语言,从而所有的过程组件在Oracle服务器产品中都能实现。用PL/SQL可以实现下述重要功能:
存储过程,即存放在Oracle数据库中的程序并为你的机构完成特定的重要工作;
数据库触发器,即存放在数据库中的代码,可由应用所产生的事件触发;
程序包,即把多个过程组合在一起当作单个程序单元的代码存放在数据库中。
其中内置程序包是预先生成的,存储在数据库中,且能在PL/SQL代码块中调用的根据需求可以传递参数的程序。它可以完成把结果直接输出到终端窗口;直接从操作系统文件读写数据;执行动态的SQL等多项功能。常用的如HTP,HTF,OWA-UTIL等。下面将通过一个动态的网上查询分数的实例来说明其在动态Web中的应用。

1、 用Oracle WebServer构建Web数据库应用

Web体系结构是非常重要的,了解不难,但是要了解透彻就需要一定的时间和精力去做,学习提升的是自己。本网小编就Web体系结构和大家详细介绍一下。

一、什么是WEB

Oracle
8服务器是一个完善的信息管理环境。它是一个大量数据的储藏所,并给用户提供对这些数据的快速访问。它能够支持C/S结构进行分布式处理和Web计算等。利用其服务器选件之一的WebServer,可以提供实现Web数据库应用的强大功能。

传统的Web数据库系统一般实现Web数据库系统的连接和应用可采取两种方法,一种是在Web服务器端提供中间件来连接Web服务器和数据库服务器,另一种是把应用程序下载到客户端并在客户端直接访问数据库。中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面。通过Web服务器返回给Web浏览器。最基本的中间件技术有通过网关接口CGI和应用程序接口API两种。

   
先介绍下http,它是一种超文本协议,是一种协议,一种通信双方的约定。Web是一种超文本信息系统,Web的主要概念就是超文本连接,他可以让你从一个主题跳转到另一个主题,只需轻轻一点,就可以跳转到包含此主题的文档上。我们把这种多连接性称为Web。

一般来说,实现Web数据库应用可以在WebServer端提供CGI/API等中间件来连接WebServer
和DB
Server,也可以让用户通过Web浏览器把相关应用下载到客户端运行,在客户端直接访问数据库,如Java
Applet,Active X,Plug-in等。本文主要介绍利用Oracle 8
提供的PL/SQL和其功能强大的内置程序包来编写程序以实现动态的Web应用。属于利用中间件开发的一种。中间件负责管理WebServer和DBServer之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面再通过WebServer返回给用户浏览器。其一般结构如下所示:

公共网关接口

  
就拿“环球网”的释义来说,对于普通的用户来说,web仅仅只是一种环境——互联网的使用环境、氛围、内容等;而对于网站制作、设计者来说,它是一系列技术的复合总称(包括网站的前台布局、后台程序、美工、数据库领域等等的技术概括性的总称)。

Web浏览器 ←→ Internet ←→ Web Server ←→ CGI/API ←→ Oracle DB Server

CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是WWW服务器运行时外部程序的规范,按照CGI编写的程序可以扩展服务器的功能,完成服务器本身不能完成的工作,外部程序执行时间可以生成HTML文档,并将文档返回WWW服务器。CGI应用程序能够与浏览器进行交互作用,还可以通过数据库的API与数据库服务器等外部数据源进行通信,如一个CGI程序可以从数据库服务器中获取数据,然后格式化为HTML文档后发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎使用的服务器软件都支持CGI,开发人员可以使用任何一种WWW服务器内置语言编写CGI,其中包括流行的C、C++、VB和Delphi等。

   特点:

2、 PL/SQL

从体系结构上来看,用户通过Web浏览器输入查询信息,浏览器通过HTTP协议向Web服务器发出带有查询信息的请求,Web服务器按照CGI协议激活外部CGI程序,由该程序向DBMS发出SQL请求并将结果转化为HTML后返回给Web服务器。再由Web服务器返回给Web浏览器。这种结构体现了客户/服务器方式的三层模型,其中Web服务器和CGI程序实际起到了HTML和SQL转换的网关的作用。CGI的典型操作过程是:分析CGI数据;打开与DBMS的连接;发送SQL请求并得到结果;将结果转化为HTML;关闭DBMS的连接;将HTML结果返回给Web服务器。

1、Web是图形化的和易于导航的(navigate)

Oracle从其版本6开始支持一种过程处理语言PL/SQL,并将其作为所有Oracle工具的标准编程语言,从而所有的过程组件在Oracle服务器产品中都能实现。用PL/SQL可以实现下述重要功能:

基于Web的数据库访问利用已有的信息资源和服务器。其访问频率大,尤其是热点数据。

      Web
非常流行的一个很重要的原因就在于它可以在一页上同时显示色彩丰富的图形和文本的性能。在Web之前Internet上的信息只有文本形式。Web可以提供将图形、音频、视频信息集合于一体的特性。同时,Web是非常易于导航的,只需要从一个连接跳到另一个连接,就可以在各页各站点之间进行浏览了。

存储过程,即存放在Oracle数据库中的程序并为你的机构完成特定的重要工作;

①客户端与后端数据库服务器通信必须通过Web服务器,且Web服务器要进行数据与HTML文档的互相转换,当多个用户同时发出请求时,必然在Web服务器形成信息和发布瓶颈。

2、Web与平台无关

无论你的系统平台是什么,你都可以通过Internet访问WWW。浏览WWW对你的系统平台没有什么限制。无论从Windows平台、UNIX平台、Macintosh还是别的什么平台我们都可以访问WWW。对WWW的访问是通过一种叫做浏览器(browser)的软件实现的。如Netscape
的Navigator、NCSA的Mosaic、Microsoft的Explorer等。

数据库触发器,即存放在数据库中的代码,可由应用所产生的事件触发;

②CGI应用程序每次运行都需打开和关闭数据库连接,效率低,操作费时;

3、Web是分布式的

大量的www.9778.com,图形、音频和视频信息会占用相当大的磁盘空间,我们甚至无法预知信息的多少。对于Web没有必要把所有信息都放在一起,信息可以放在不同的站点上。只需要在浏览器中指明这个站点就可以了。使在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些信息是一体的。

程序包,即把多个过程组合在一起当作单个程序单元的代码存放在数据库中。

③CGI应用程序不能由多个客户机请求共享,即使新请求到来时CGI程序正在运行,也会启动另一个CGI应用程序,随着并行请求的数量增加,服务器上将生成越来越多的进程。为每个请求都生成进程既费时又需要大量内存,影响了资源的使用效率,导致性能降低并增加等待时间;

4、Web 是动态的

最后,由于各Web站点的信息包含站点本身的信息,信息的提供者可以经常对站上的信息进行更新。如某个协议的发展状况,公司的广告等等。一般各信息站点都尽量保证信息的时间性。所以Web站点上的信息是动态的。经常更新的。这一点是由信息的提供者保证的。

其中内置程序包是预先生成的,存储在数据库中,且能在PL/SQL代码块中调用的根据需求可以传递参数的程序。它可以完成把结果直接输出到终端窗口;直接从操作系统文件读写数据;执行动态的SQL等多项功能。常用的如HTP,HTF,OWA-UTIL等。下面将通过一个动态的网上查询分数的实例来说明其在动态Web中的应用。

④由于SQL与HTML差异很大,CGI程序中的转换代码编写繁琐,维护困难;

5、Web是交互的

Web的交互性首先表现在它的超连接上,用户的浏览顺序和所到站点完全由他自己决定。另外通过FORM的形式可以从服务器方获得动态的信息。用户通过填写FORM可以向服务器提交请求,服务器可以根据用户的请求返回相应信息。

二、什么是WEB服务器

   
Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求Web服务器可以响应一个静态页面或图片,进行页面跳转或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术。无论它们(译者注:脚本)的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。

三、Tomcat——一种WEB服务器
     Tomcat是一个开放源代码、运行servlet和JSP
Web应用软件的基于Java的Web应用软件容器。Tomcat
Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat
Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。
     Tomcat是Java Servlet 2.2和JavaServer Pages
1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet
API 2.2和JSP
1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina
Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多WEB服务器都是采用Tomcat。
目前,许多大型Web应用一般将Apache和Tomcat结合使用,Apache负责接收用户的HTTP请求,如果请求是Servlet、Jsp,则把请求转发给Tomcat处理,并将处理结果封装响应给用户。

3、 利用WebServer和PL/SQL开发动态Web实例

⑤安全性差,缺少用户访问控制,对数据库难以设置安全访问权限;

四、基于JDBC的Web数据库技术

     
JDBC是用于执行SQL语句的Java应用程序接口API,由Java语言编写的类和接口组成。Java是一种面向对象、多线程与平台无关的编程语言,具有极强的可移植性、安全性和强健性。JDBC是一种规范,能为开发者提供标准的数据库访问类和接口,能够方便地向任何关系数据库发送SQL语句,同时JDBC是一个支持基本SQL功能的低层应用程序接口,但实际上也支持高层的数据库访问工具及API。所有这些工作都建立在X/Open
SQL CLI基础上。JDBC的主要任务是定义一个自然的Java接口来与X/Open
CLI中定义的抽象层和概念连接。JDBC的两种主要接口分别面向应用程序的开发人员的JDBC
API和面向驱动程序低层的JDBC Driver
API。JDBC完成的工作是:建立与数据库的连接;发送SQL语句;返回数据结果给Web浏览器。

 

现有一考生成绩库需在网上向用户提供查询成绩的功能。首先可考虑利用HTP程序包根据用户输入的考生号到数据库中查询相应的信息,返回一个网页。代码如下:

⑥HTTP协议是无状态且没有常连接的协议,DBMS事务的提交与否无法得到验证,不能构造Web上的OLTP应用。

Create or replace procedure score_into_webpage (code_in in number)

为了克服CGI的局限性,出现的另一种中间件解决方案是基于服务器扩展API的结构。与CGI相比,API应用程序与Web服务器结合得更加紧密,占用的系统资源也少得多,而运行效率却大大提高,同时还提供更好的保护和安全性。

As

服务器API一般作为一个DLL提供,是驻留在WWW服务器中的程序代码,其扩展WWW服务器的功能与CGI相同。WWW开发人员不仅可以API解决CGI可以解决的一切问题,而且能够进一步解决基于不同WWW应用程序的特殊请求。各种API与其相应的WWW服务器紧密结合,其初始开发目标服务器的运行性能进一步发掘、提高。用API开发的程序比用CGI开发的程序在性能上提高了很多,但开发API程序比开发CGI程序要复杂得多。API应用程序需要一些编程方面的专门知识,如多线程、进程同步、直接协议编程以及错误处理等。主要的WWWAPI有Microsoft公司的ISAPI、Netscape公司的NSAPI和OReily公司的WSAPI等。使用ISPAI开发的程序性能要优于用CGI开发的程序,这主要是因为ISAPI应用程序是一些与WWW服务器软件处于同一地址空间的DLL,因此所有的HTTP服务器进程能够直接利用各种资源这显然比调用不在同一地址空间的CGI程序语句要占用更少的系统时间。而NSAPI同ISAPI一样,给WWW开发人员定制了NetscapeWWW服务器基本服务的功能。开发人员利用NSAPI可以开发与WWW服务器的接口,以及与数据库服务器等外部资源的接口。

cursor score_cursor is

更多关于“Web体系结构”等建筑建设方面的知识,可以登入中国本网建设通进行查询。

select code,name,score

www.9778.com 1

from student

关注手机本网(

where code = code_in;

Begin

Htp.htmlopen;

Htp.headopen;

Htp.title (Students score information);

Htp.headclose;

Htp.bodyopen (cattributes=bgcolor = “#80800”);

Htp.tableopen(border);

Htp.tablecaption (Score Information,center);

Htp.tablerowopen;

Htp.tableheader ( Student Code);

Htp.tableheader ( Student Name);

Htp.tableheader ( Student Score);

–固定地显示页标题、标题、表头等信息,每次调用此页时显示的信息

–是相同的

Htp.tablerowclose;

For score_rec in score_cur

Loop

–利用游标的For循环为游标在网页中产生一个数据行

htp.tablerowopen;

htp.tabledata (score_rec.code);

htp.tabledata (score_rec.name);

htp.tabledata (score_rec.score);

htp.tablerowclose;

Endloop;

Htp.tableclose;

Htp.bodyclose;

Htp.htmlclose;

End;

通过以上代码,我们有了一个基本的用数据库中的数据动态的生成一个网页的方法,下面将建立一个简单的表单。在表单中调用上述程序和接受用户输入的考生号码,从而在客户端向用户动态地显示从数据库中查询的信息。