公共网关界面(CGI)是一种编程标准,符合标准的程序(CGI程序),通过WEB服务器与
运行WEB浏览器的客户进行交互。这些程序允许WEB开发者通过浏览器传送动态信
息(通常嵌于HT ML中)。CGI程序可用WEB浏览器能运行的任何语言来书写,其中包
括Java。CGI程序通常用于加入搜索机制、客户登记应用程序、数据库查询机制、
交互式用户论坛和其它一些WEB站点的交互式应用程序。
CGI程序必须解释发送给它的信息,并以某种方式处理这些信息,生成相应结果
回送给客户。
CGI规定了一组标准的环境变量和参数格式,CGI程序的绝大多数输入通过环境
变量传入程序内部。本文将演示如何把环境变量传递给一个Java程序。除环境变
量之外的输入作为标准输入可直接被程序读取。
CGI程序的处理过程可能很简单,也可能象从一个数据库中请求数据那么复杂
。这由具体处理需要而定。
CGI程序可以返回多种类型的文档。因此必须在输出内容中放置一个短的文档
头(HEADE R)(ASCII码文本),使客户知道该如何解释它生成的信息。CGI程序最常
生成的是HTML文档。生成文档头之后,CGI程序以它的本机格式生成输出中的体(B
ODY)。在下文中我们将使用一个预先编制的Java库,它包含生成HTML文档头的方法
header()。
一、将CGI环境变量传递给Java程序
编写CGI Java程序较为容易。首先Java程序需要包在另一个脚本中运行。实
际嵌入服务器的脚本将是能把环境变量传入Java程序的UNIX外壳脚本或Windows批
处理文件。
由于Java不再提供直接访问环境变量的方法(最新的JDK版本取消system.get
env()方法),因此,建议使用Java解释器的-D命令行参数传递CGI的每个环境变量。