.log(ぽちろぐ)

退屈しているおっさんの日記

画面を開かないサーブレット


     サーブレットを起動したい。でも、画面遷移はしたくない。ポップアップもしたくない。どーする?。
    <form name="autoTrigger" action="./TriggerServ" target="dummy" method="post">
    <input type="hidden" name="parameter" value="">
    <IFRAME SRC="./dummy.html" name="dummy" frameborder="0" width="1" height="1">
    </IFRAME>
    </form>
    
     というフォームを画面の隅にでも配置しておく。javaScriptでイベントを拾って、
    document.autoTrigger.submit();
    
    としてやると、TriggerServが起動される。TriggerServはインラインフレーム"dummy"に画面を作り始めるのだけど、小さいから何の事やら。サーブレットの中にはやりたいことを書いておけばよいね。
     これで何が出来るかというと、ショッピングサイトで、クリックしようか、いや、まてよ、なんて考えている人のonMouseOverを拾って、サーブレット起動。ログを書き込んだり、セッションに書き込んだり、注文確定したりできるわけだ。
     もうちょっと頭を捻ると、インラインフレームを、適切な大きさのメッセージウィンドウにしておいて、TriggerServは、
    out.print("<b>鼻毛カッターにマウスオーバーしたよ!</b>");
    
    をインラインフレームに吐き出すようにする。お、Ajaxぽい。しかも処理を隠蔽できるところがミソだ。

     こういう技術メモを上げてるのはなんでかって言うと
    「この処理、前のプロジェクトでやったけど、どう書いたっけ?」
    を自分で参照するため。それと、webに落ちてるサンプルコードを拾ってラッキーなことが頻繁にあるので、じゃ、俺も誰かの役に立てば、巡り巡って自分にもラッキーなことが増えるよねってこと。
     もっと良いやり方ってあると思うので、それを誰かがwebに上げてくれると、誰かがその恩恵を受ける。そのサイクルが巡り巡って、自分に返ってくれば、製造時の残業が減るよねってことだ。