「JavaAppletとCGI を連携させて……」という声をネットでよく聞きます。なぜなら、JavaAppletではローカルファイルに接触できないからです。スタンドアロン(main関数が含まれるプログラム)かサーブレットであればもちろん可能なのですが、セキュリティ上Appletではファイルに接触できなくなっています。だからCGI
プログラムに飛び、必要なデータをファイルから読み込んでAppletに渡すしかないのです。例えばAppletで掲示板やチャットを作成するとして、ログを保存したい場合はこの方法を取るしかないのです。ですから本体こそAppletで作れるものの、やはり最後はCGI
に頼らなければならなくなってしまうのです。そうなるとJavaは起動時に時間がかかるので、短時間で(ファイル接触の)用事の済む掲示板は純CGI
で、チャットの場合はCGI 版と比べて素晴らしく軽いものくらいしか作れないのです。
さて、では本題に入ります。まずAppletから渡されたデータをCGI (ここではPerl)側で受け取らなければなりません。この場合、データはPost形式で渡されます。また、フォームからのデータ送信ではないので、デコードをしてやる必要はありません。データを取り込んだら、あとはファイルにセーブするなり何なり自由に扱うことができます。 次はCGI 側でファイルから読み込んだデータの送信ですが、これはJavaの性質を理解していたら容易に分かることだと思います。例えばJavaでソケットを生成し、データを送信させた場合、受信側はどうやってデータを取り出すのか……あとはご自分で考えてみて下さい。 |