4. 执行一个 Java CGI 程式
4.1. 以 CGI 模式执行 Java 程式的障碍
从 web 伺服器执行 Java 程式有两个主要的问题:
4.1.1. 你不能像一般执行档一样执行 Java 程式
你必需执行 Java 的执行时刻(run-time)解译器并且以命令列的方式提供初始类别(程式执行所需).在一个
HTML form 里面没有办法提供命令列给 web 伺服器.
4.1.2. Java 程式没有一般的方法可以取得环境变数
Java 程式所需的每个环境变数都必需被传入. (在 Java 程式中)没有类似
C 语言的 getenv() 函数.
4.2. 执行 Java CGI 解决问题
为了处理这些困难,我写了一个 CGI 指令稿程式,提供 Java
解译器所需的资讯.
4.2.1. java.cgi 指令稿
这个指令稿管理 HTTP 伺服器与你希望使用的 Java CGI
程式之间的互动.它从 server
端提供的资料中取出你想要执行程式的名称.它将所有的环境变数资料将髹到一个暂存档里.然後,它将这个档案以及程式名称加命令列中,执行
Java 的执行时刻解译器.
java.cgi 指令稿的设定与安装在 决定你的本地目录策略 一节说明.
4.2.2. 从 HTML form 中引发 java.cgi
使用 Java CGI 程式的 HTML form 以下面的方式指定其行为:
<form action="/cgi-bin/java.cgi/CGI_Test" method="POST">
其中 /cgi-bin/ 是你本地端的 CGI 二进位执行档目录, java.cgi
是允许我们从 web 上执行 Java 程式的前端,而 CGI_Test 是一个欲执行的
Java 程式名称的例子.