RhinoでCGI(GET編)
30分プログラム、その99。RhinoでCGIを書いてみる。
CGIライブラリが見つからなかったので、自力でGETパラメータをとってきた。
- GETが使えるようになる <- 今ここ
- POSTが使えるようになる
- DOMが使えるようになる
- なにかアプリケーションを書く
説明
- GETパラメータは環境変数QUERY_STRINGを自力でパースする
- 環境変数はJavascriptでは取得できないので、java.lang.Sysetm.getenvで取得している
- protoype.jsをロードするために、いくつかのスタブを用意した
- 連想配列からハッシュへ変換する素敵な方法が欲しい
ソースコード
#!/usr/bin/java -classpath /opt/manual/rhino/js.jar org.mozilla.javascript.tools.shell.Main // load prototype.js document = { evaluate:null }; window = {}; navigator = { appVersion:'' }; load('js/prototype.js'); // main print("Content-type: text/html\n\n"); function getEnv(name){ return java.lang.System.getenv(name); } function parseGET(query){ var hash = {}; query.split('&').map(function(x){ var item = x.split('=',2); hash[item[0]] = item[1]; }); return hash; } var GET = parseGET(getEnv('QUERY_STRING')); print('Hello,' + GET.name);