VwpFAQAddingAppletPackageJa
VWP Web アプリケーションにアプレットパッケージを追加する方法を教えてください。
ウェブページにアプレットを動的に配置する事は Tor Norbye's blog の指示を使って出来ました。
パッケージ内のアプレットのためのソースコードを起きたいと考えています。私は" アプレットリスト " という名前のパッケージを使っていて、コンパイルしたときのクラスファイルが WEB-INF/classes/applettest ディレクトリで終わっています。例えば、フーという文字列をセットするためのコードを書いてみます。
public String getFoo() {
String str = new String("<applet codebase=\"WEB-INF/classes\" code=\"applettest.HelloWorldJApplet\" width=\"300\" height=\"300\">
</applet>");
this.setFoo(str);
return this.foo;
}
そして、ブラウザ上では、ソースは以下のように終わっています。
<applet codebase="WEB-INF/classes" code="applettest.HelloWorldJApplet" width="300" height="300"> </applet>
これが動かないのです。どうすればいいでしょうか。
解決法
ブラウザから ( アプレットクラスを含んだ ) リソースに直接アクセスできる ( 例えば、ダウンロード可能な状態 ) ようにするには、そのリソースが WEB-INF ディレクトリの外側になければなりません。これはサーブレットの仕様書 ( 例えば、バージョン2.3では、 SRV 9.5 セクションにあります。 ) によって権限が与えられます。
特別なディレクトリが "WEB-INF" という名前のアプリケーション階層にあります。このディレクトリにはアプリケーションのドキュメントルートにはないアプリケーションに関連するすべてが入っています。 WEB-INF ノードは、アプリケーションのパブリックドキュメントツリーの一部ではありません。 WEB-INF ディレクトリにファイルがない場合はコンテナからクライアントに対してディレクトリが供給されないかもしれません。
WEB-INF の下からブラウザへリソースを供給する間接的な方法はもちろんあります。それは、変数としてリクエストされたリソースへのパスをとってきたり、リソースの返却をストリームするサーブレットを持つことです。
ノート: Visual Web Pack のルーツは Sun Java Studio Creator です。リンクされているブログは開発者向けに書かれましたが、いまだに VWP にも適用されています。
- 日本語訳 : Mikiko Tsutsui
- 英文 (翻訳したバージョン: 1)
- 日本語 NetBeans Visual Web Pack ユーザー FAQ へ戻る
