(sample.cgi?param1=abc) ※ ユーザに任意に引数を変更されたくないため。
JAVAアプレットからPOSTにてHTML(CGI)を呼び出す方法を教えてください。
http://java-house.jp/ml/archive/j-h-b/013047.html
[JavaHouse-Brewers:13047] [Q] About showDocument
showDocument ではPOSTはできないみたい。
上記URLの「3.POST方式によるアプレットとCGIの連携」のあたりに参考になりそうなことが書いてあります。
最後のページはなかなか分かりやすいですね。
でもソケット通信ではなく、ページを表示したい・・・
http://java-house.jp/cgi-bin/namazu.cgi?max=50&query=showdoc...
Java House: Search Results
Java(tm) House Mailing Listでも何度か話題に出ているようですが、これはできないと思われます。
GETメソッドで呼び出されたパラメータからPOSTメソッドで本来のCGIを呼び出す、様なJavaScript併用のCGIを作ることで、見た目的にだけ希望の様な動作をさせることは可能でしょう。
PHPっぽい疑似コードで書くと、
function reloadcgi(){
fm.hoge.value =”<?= $hoge ?>”;
//$hogeがGETで受け取ったhogeというパラメータ
fm.submit();
}
:
:
<body onload=”javascript:reloadcgi()”>
<form action=”realtarget.cgi” method=”POST” name=”fm”>
<input type=hidden” name=”hoge” value=””>
</form>
の様な感じでいけそうな気はします。
クロスサイトスクリプティングなどには重々注意する必要はありますが、こんな手段しかないかと思います。
……ここまでやる必要があるかどうか検討するべきでしょうね。
なるほど!
JavaScriptでアドレスバーを隠す方法は考えたのですが、ポリシーに反するのでなんとかPOSTでと考えてました。
シンプルではありませんが、システム構成上どうしても対応しなければならない問題なので助かりました。
うーん無理ですかね。POST方式でCGIを実行して、応答内容をJAVAで取得する方法はわかるのですが、POSTにてとばしたいという意図からははずれます。