WWW サーバから Java のプログラムを実行する場合、2つの大きな問題があります。
Java のプログラムを実行するためには、コマンドライン上でJava ランタイム・ インタプリタを実行し、これに初期クラス(実行するプログラム)を与えなけれ ばなりません。 ところが、HTML の FORM を使う場合、WWW サーバにコマンドラインを教える ことはできません。
Java のプログラムが必要とする環境変数は明示的に渡されなければなりませ
ん。
C言語のgetenv()
関数のような方法はありません。
これらの問題を解決するため、Java インタプリタが必要とする情報を与える ための CGI シェルスクリプトを作りました。
このシェルスクリプトは HTTP デーモンと 実行する Java CGI プログラムの やりとりを行います。 このスクリプトはサーバによって与えられたデータから実行するプログラムの 名前を展開します。 次に全ての環境変数を一時ファイルに集めます。 それから、環境についての情報ファイルの名前とプログラムの名前をコマンド ラインに指定してJava インタプリタを実行します。
java.cgi
スクリプトは、
ローカルパスについての方針の決定
の節で設定及びインストールされています。
Java CGI を使う FORM では以下のように FORM のアクションを指定します。
<form action="/cgi-bin/java.cgi/CGI_Test" method="POST">ここで、
/cgi-bin/
はローカルの CGI ディレクトリで、
java.cgi
はWWW上でのJavaの実行を可能にする Java フロントエンド
です。そして、CGI_Test
はJava プログラムの名前の例です。