计算机应用研究
APPLICATION RESEARCH OF COMPUTERS
2000 Vol.17 No.3 P.83-84




采用动态网页技术实现科技项目网上申报
熊忠阳　张玉芳　陈劼
摘　要：介绍了使用CGI技术在Internet环境下实现科技项目网上申报的原理、方法及实现过程中的几个关键问题。
关键词：动态网页 CGI 项目申报
1　引言
　　科委作为各级政府综合管理科学技术工作的职能部门，负责制定科学技术发展规划，管理重大科技计划项目，对外开展国际合作与交流，促进技术贸易，对推动地方科技和经济发展负有重要使命；作为科技主管部门，科技计划项目的管理工作无疑是其工作的重点。目前大多数科技计划项目的管理仍然采用手工进行，少数采用计算机管理的部门往往也仅局限于部门内部事务的管理。这对于那些需要申报科技计划项目的单位来说，申报工作仍必须采用手工填写各种表格，送交科技主管部门，然后输入计算机进行管理。对于项目是否申报成功，申报项目目前的状况等信息，申报单位往往得不到一个直观、及时、明确的了解。
　　为了提高科技项目申报过程管理的透明度，提高职能部门的办事效率，真正体现为科技服务的宗旨，迫切需要充分利用现代最新的信息技术Internet来实现科技项目的网上申报。也就是要针对科技项目网上申报的需要，设计开发出一套可以在Internet环境下使用的软件，其主要功能包括科技项目的申报、浏览、修改、删除，申报项目信息查询，项目申报指南等，从而使申报者可以轻松、及时、准确、方便地完成项目的申报工作，为申报者节省人力、物力和时间。同时，这种网上申报的方式还能够有效地避免项目的重复申报，项目申报者可以从网上及时了解到所申报项目的立项过程，以及立项成功后的各种信息，例如项目合同，经费情况等。
　　本文就采用动态网页技术实现科技项目网上申报的软硬件结构，动态网页的实现原理和过程，以及软件设计实现中的几个关键问题作一介绍。
2　科技项目网上申报系统结构
　　图1描述了实现科技项目网上申报工作所需要的系统结构。可以看出，用户是在客户机上通过Internet访问服务器中数据库的，它需要有Internet网络、Web服务器、数据库服务器的支持。从图中可以看出，用户只需要与项目申报网页打交道，将申报信息填入此网页并提交。剩下的工作则由服务器端的CGI应用程序去完成。具体来说就是由CGI应用程序最终完成与数据库的数据交换。

图1　科技项目网上申报的系统结构
3　采用动态网页技术实现项目网上申报的过程
　　可以看出，实现科技项目网上申报工作的关键是实现网页的动态性，即解决好网页对数据库的有效访问问题，这也是本软件的重点和难点。下面就着重介绍采用动态网页技术实现科技项目网上申报的原理和过程。从图2可以看出，动态网页由CGI应用程序和网页两部分构成。CGI应用程序在服务器端，它可以简单地看成是一个方法库。在这个库中，由程序员事先编写好各种不同的与数据库打交道的方法，例如插入、查询以及删除等。网页是在客户端，它的作用是调用CGI应用程序中的这些方法来实现科技项目的网上申报工作。

图2　动态网页的构成及实现原理
　　现举例说明采用动态网页技术实现项目网上申报的过程。在科技项目申报动态网页中，申报者将申报信息,例如“项目名称”，“项目类别”，“申报时间”等，按提示填入网页后，然后进行提交。提交操作的目的实际上是告诉服务器应该执行CGI应用程序中的插入数据这个方法。服务器端的CGI程序在接到这个请求后会将用户填写的数据从网页中提取出来并插入到数据库中。
4　实现动态网页所要解决的几个关键问题
　　上面介绍了采用动态网页技术实现科技项目网上申报的原理和过程。在具体实现这个过程时，还需要解决以下4个关键问题：
　　1)如何在网页中调用CGI应用程序中的方法。
　　2)CGI应用程序怎样获得用户在网页中填写的数据。
　　3)CGI应用程序怎样与数据库交换信息。
　　4)CGI应用程序怎样将数据发送到客户端。
　　只有解决了这4个问题，才能最终实现网页与数据库的信息交换，使网页具有动态性。下面分别介绍这4个关键问题的解决方法。
4.1　在网页中调用CGI应用程序中的方法
　　在超文本标识语言中有一种表达方式可以用来调用CGI中的某个方法，下面的表达式即说明了这种调用方法：
action=“http://202.202.15.150/chj/GdWebSpD.exe/InsertT1"
　　在上面的表达式中，“http://202.202.15.150/chj”是一个地址，它用来指明CGI应用程序的位置。“GdWebSpD.exe”就是一个CGI应用程序。“InsertT1”是CGI应用程序中的一个方法。当提交后，系统会根据给定的地址去调用CGI应用程序“GdWebSpD.exe”中的“InsertT1”方法。
4.2　CGI应用程序从网页中获取用户填写的数据
　　图3给出了CGI应用程序的简单结构图，从图中可以看出，CGI应用程序实际上是由一个个方法组成的。语句1用来将网页中文本框“T1”的内容赋给变量“VXmbh”。通过这种方式，CGI应用程序就可以获得用户在网页中填写的数据。

图3　CGI应用程序简单结构
4.3　CGI应用程序怎样与数据库交换信息
　　图3中的语句2包括四条子句，子句1是用来清除上一次所执行的SQL语句。子句2中Add后面紧跟的是标准SQL语句，它表示在科技项目编号信息表“xmbhxxb”表中选出最小的科技项目编号，为新申报的项目进行编号。子句3则用来执行子句2中添加的SQL语句。子句4将SQL语句执行的结果赋给变量VXmbh。
　　通过这四条语句，就可以实现数据库的查询操作。其它的插入、删除、更新等操作也与这种方法类似，只是Add后面所跟的SQL语句不同而已。
4.4　在CGI应用程序中将数据发送到客户端
　　语句3将变量VXmbh的内容显示在客户端的一个空网页中。比如VXmbh的内容是一个项目编号“19990156”，那么它在客户端的空网页中就会显示这个项目编号。如果要将返回的信息放到事先做好的网页的某个给定位置上，就要用到语句4。其中“PageProducer 1”代表事先做好的网页，“PageProducer 1.ReplaceText:=VXmbh”语句表示将变量VXmbh的内容添加到“PageProducer1”这个网页的第一个位置上。而下一条语句则表示将“PageProducer1”表示的网页返回到客户端去。这样用户就可以看到一个完整的网页了。
5　小结
　　采用动态网页技术是实现科技项目网上申报的关键。一般来讲，服务器端应用程序主要有API、ISAPI、CGI、ASP、JDBC等几种方式，它们都是用于执行服务器进程的应用程序。采用CGI应用程序的理由之一就是几乎所有的基于Windows的Web服务器都可以使用相同环境编译的CGI应用程序。此外，CGI的EXE由服务器装载后，若想替换它可不必重新启动服务器，而只需将旧CGI的EXE用新的CGI EXE替换即可。但CGI应用程序也有其局限性，例如CGI应用程序的性能问题。当客户端调用一个CGI应用程序时，Web服务器都要创建一个新的进程来执行CGI执行文件。若有许多请求产生，那么Web服务器的性能将会受到较大影响。
熊忠阳(重庆大学计算机科学与工程学院 重庆 400044)
张玉芳(重庆大学计算机科学与工程学院 重庆 400044)
陈劼(重庆大学计算机科学与工程学院 重庆 400044)
参考文献
1 林予松等. 在Windows NT上开发Web服务器. 北京：机械工业出版社
2 http://www.gustavo.net/programming/cgi__tutorials.shtml
收稿日期：1999年8月12日
