2

Java アプレット アプリケーションがあります。ユースケースは次のとおりです。

ユーザーは、サーブレットにマップされた URL を呼び出します。応答としてのサーブレットは、ユーザーが UI でナビゲートできる JSP ページを返します。UI全体がSwing(基本的にはJApplet)でできています。UI のイベントは、従来の方法 [ ActionListeners, SelectionListeners...] で処理されます。今、次の要件があります。

サーバー ディレクトリには、ユーザーがアプリケーションからダウンロードできるようにするファイルがあります。UI でユーザーにリンクを提供する必要があります。リンクをクリックすると、ダウンロードがトリガーされます。

JApplets のセキュリティ機能を考慮して、これを行うことはできますか? また、Swing コンポーネントのイベント処理メカニズムも考慮してください。

4

1 に答える 1

4

サンドボックスアプレットのオプション。

行くには2(.2)の方法があります(私はすぐに考えることができます)。

  1. AppletContext.showDocument (URL、String)メソッドを使用して、ブラウザーを使用してダウンロードをトリガーします。
  2. 「次世代」プラグイン2ベースのアプレット(Sun / OracleのJVMでは1.6.0_10+)の場合、JavaWebStartのJNLPAPIの機能にフックすることができます
    1. JNLP APIは、サンドボックス化されたアプリケーションまたはアプレットでローカルファイルシステムにアクセスする機能を提供します。これが私の小さなデモです。JNLPAPIファイルサービスの
    2. JNLP APIは、BasicService.showDocument(URL)メソッドも提供します。このバージョンは、成功/失敗を示すためAppletContextにaを返すという点で、同等のバージョンよりもわずかに優れています。booleanアプレットベースのバージョンは失敗する可能性があり、失敗した場合は、サイレントに失敗します。デモも参照してください。BasicServiceの

信頼できるアプレットはこのプロセスを使用できます。

  1. をポップしJFileChooserて、ユーザーがを保存する場所を決定できるようにしますFile
  2. Fileセレクターが有効なもの(アクションがキャンセルされなかったことを示す)を返した場合は、保存を続行します。
  3. InputStreamから取得しURLます。
  4. を確立OutputStreamFileます。
  5. からバイトを読み取りInputStream、に書き込みますOutputStream
  6. すすぎ、読み取りが-1になるまで繰り返します。
于 2011-05-13T07:19:41.403 に答える