アプレットからファイルをダウンロードする
-
12-11-2019 - |
質問
Javaアプレットアプリケーションを持っています。ユースケースは次のとおりです。
ユーザはサーブレットにマッピングされているURLを呼び出します。応答としてのサーブレットは、ユーザーがUIをナビゲートできるJSPページを返します。UI全体はスイングでできています[基本的にはJAPPLET]。UIのイベントは、従来の方法[ActionListener
s、SelectionListener
s ...]で処理されます。今、私は以下の要件があります:
サーバディレクトリには、アプリケーションを介してユーザーがダウンロードできるようにする必要があるファイルがあります。私はユーザーに私のUIにリンクを与える必要があります。クリックしてダウンロードをトリガーします。
Jappletのセキュリティ機能を考慮して行うことができますか?スイングコンポーネントのイベント処理メカニズムも検討してください。
解決
サンドボックスアプレットのオプション。
行く2つの方法があります(すぐに考えることができる)。
- 「Next Generation」プラグイン2ベースのアプレット(Sun / OracleのJVMの1.6.0_10 +)の場合 jnlp java web start 。
- JNLP APIは、サンドボックスアプリケーションまたはアプレットのローカルファイルシステムにアクセスする機能を提供します。これが私の小さなデモです。 JNLP APIファイルサービス
- JNLP APIは basicservice.showDocument(URL)メソッド。このバージョンは、成功/失敗を示すために
AppletContext
を返すという事実に等しいboolean
よりもわずかに優れています。アプレットベースのバージョンが失敗する可能性があり、そうであれば、そんなに静かにします。 デモも参照してください。 BasicService の
信頼できるアプレットはこのプロセスを使用できます。
-
JFileChooser
をポップして、ユーザーがFile
を保存する場所を決定できるようにします。 - 選択した
File
を返す場合(アクションがキャンセルされなかったことを示す)保存を続行します。 -
InputStream
からURL
を取得します。 -
OutputStream
にFile
を確立します。 -
InputStream
からバイトを読み取り、それらをOutputStream
に書き込みます。 - READがREADを生産するまでリンス&リピート - 1。
-
所属していません StackOverflow