务器处理的方式与那些非外部程序生成的 HTML,图象或者其他内容的处理方式是相同的.因此,CGI程序不仅使 你能生成静态内容, 而且能生成动态内容. 使用CGI的原因在于它是一个 定义良好并被广泛支持的标准.虽然,Java,ActiveX等可以完成CGI程 序的功能,但并不是所有浏览器都支持它们.相反,所有浏览器都支持 CGI,如:Lynx,IE,Netscape等. 然而,和其他技术一样,CGI也有它的局限性.本节我就讲述CGI 程序的功能,优点与不足. 1.1,CGI功能 有许多任务,CGI是最佳的是唯一的选择,这些任务可分为三类:初 级任务,中级任务和高级任务.初级任务是一些不用怎么编程的任务, 如: 文本型计数器生成简单的HTML的程序少于50行用Perl语言,Shell脚 本,C语言或C++语言编写的程序 这样的任务用CGI来写至少有三点好处: 第一, CGI运行最快, 而Java 等开销太大;第二,CGI标准于当前浏览器最兼容,这一点在前面已经提 到;第三,CGI资源丰富,您在Internet上可以找到成千上万的CGI代码. 中级任务是包括图象映象和其他一些稍复杂的程序
设计任务.在中 级任务中,用CGI和Java来编写程序的难易程度差别不大. 此类任务包括: 图象映象生成整页的
HTML的CGI脚本动画 很有特点的是,对于高级任务,用CGI比用Java编程要简单得多.此 类任务有: 后端数据库操作
搜索引擎多重动态页面 其中,后端数据库操作(存取数据库的应用程序)体现了CGI的优越 性.CGI有一定的历史,其中很多有用的功能都在CGI的库中由别人做好 了;同时,许多大公司提供了用CGI承虿僮髌涫 菘獾姆椒ǎ 遥?
Java 是一种程序设计语言,而CGI是网关程序的功能规范.如果Java有较大改 变,您得重写整个程序;而CGI有较大变化的,您只要升级CGI库
程序即 可. 然而,CGI在有些方面还是有局限性
的. 1.2,CGI的局限性 在图象映象和动画方面,CGI程序不如Java程序开发方便.现在Java
越来越流行, CGI程序则越来越适合编写简短杂乱的程序和数据库应用程 序. 1.3,CGI程序功能 CGI程序的最大特点是可以用任何一种语言编制, 可运行在任何一种 平台上,只要它符合CGI的规范即可.下表是一个比较:
任务 处理表单 创建WEB页面上非静态内容 处理图象映象文件 在WEB页面和文档中搜索 创建表单 创建平台无关的
文档 创建聊天室等交互应用程序 页面动态生成 按用户需要进行页面
文档裁剪 CGI+HTML Yes Yes Yes Yes Yes Yes Yes Yes Yes HTM L No No Yes No Yes Yes No No No
下 面 , 我 们 用 一 系 列 " HelloWorld " 程 序 结 束 本 讲 : Perl : Require?cgi-lib.pl?; Perl : Require "cgi-lib.pl"; print &;PrintHeader; print "\n"; print "Hello World\n"; print &;PrintEnv; exit; 此文件存储在C:\HTTPD\CGI-BIN目录下,文件名为2_1.pl.在浏览 器中用地址localhost/cgi-bin/2_1.pl调用.注意,此时OmniHTTPD应 在运行. 如果一切正常,您可以在浏览器中看见"HelloWorld"和环境变量. C : #include #include "html-lib.h" #include "cgi-lib.h" int main() { html_header(); html_begin("Test CGI"); h1("CGI Program"); printf("\n"); h2("CGI Environment Variables"); print_cgi_env(); html_end(); return 0; } 编译后将可执行文件复制到C:\HTTPD\CGI-BIN下,改名为2_1.cgi, 用地址localhost/cgi-bin/2_1.cgi调用.
(未完待续)
用Delphi编写CGI程序(三) 作者:戚文敏 教学纲要 在上一讲中,我们介绍了CGI程序的功能.今天,我们进入:第二部 分,CGI程序设计的概念.本讲的内容是深入了解CGI程序的基础. 本系列讲座是用Delphi编写CGI程序,对于本次的内容Delphi已经封 装在它的类中, 您也许认为本讲没有必要. 但我认为CGI的优势之一是可 用的开发语言多(下面将提到这个问题),而本讲的内容可用于任何程 序设计语言中(包括Delphi).所以,要发挥CGI的优势,本讲的内容还 是必要的;再说,本讲的内容是深入了解