≒ 未解決)Tomcat環境へのapplet配置

servletは少しづつ勉強してってるんですけど、ちょっとappletをどんな風に配置するのか知りたくて、試しにapplet一個置いただけのページを作成してみる。大はまり。

1)appletの置き場所がわからない

Tomcat Webアプリケーションマネージャ最高!セキュリティの穴ふさぐのめんどくさいけど、その手間を補って余りある使いやすさw まぁ慣れたら使わなくなるらしいけどね。

で、warファイルはeclipseでそのままシームレスにエクスポートできるのが最高!ってやってるんだけど、appletの置き場がわからない。普通にclassとして新規作成するとWEB-INFディレクトリ配下に置かれてしまう。

試行錯誤したんだけどこれは結局まだわかってない。

2)WEB-INFディレクトリの仕様

これはservlet内部からしかアクセス出来ない。htmlなどからパス指定をしても一切見えないのです。色んなページ漁ってみたけどアクセス方法がない。でも探してるうちに、こういうふうにフォルダアクセスも仕組み自体で完全に制御してるところがTomcatの良い点だと理解できた。

3) 1)2)を踏まえての問題

結局WEB-INFより上=ページのルートはアクセスできるんだから、そこにフォルダ作ってapplet置いてhtml指定でアクセスするのが一番簡単な解決法。でもそれだとwarファイル展開→できた構造の中にapplet放り込む、って手順になってなんかエレガントじゃない。warファイル自体の(再)配備も上手く行かなくなるし。そこはマネージャ使って簡単にできる状態から後退するのは何かイヤ。

4)context.xml

関係ない。ページのルートから外れた場所に置いたフォルダ(ディレクトリ)を認識させるために設定するものなんだけど、いまいちよくわからなくて3時間くらい試行錯誤。でもよく考えたらhtml(=クライアントサイド)から認識できるようにすれば良いだけなんだから、context.xmlの設定は必要無い。おかげでTomcatのディレクトリ構造の勉強にはなったけど。

5)今のところ

webapps直下にフォルダ(openSauce w)作ってそこにぶちこんだ。ページからは階層上ればアクセスできる。appletとか画像とかのデータは隠す必要無いんだし、今後他のページ作った時もここなら同じ手順でアクセスできるし。

以上。何か間違ってるような気がしないでもないので書き残し。しかしjsp良いです。できたのはこのページなんですけど、appletをjsp:pluginタグで埋め込んだら勝手にObjectタグとembedタグに書き分けてくれる。先日の苦労は何だったんだw

追記)

jsp:pluginタグの代替コメント指定<jsp:fallback>タグだとnoembedタグでの表記に変換されちゃうな。objectタグの方に適用してくれないと認識されないんですけど。