2

我有一个 Java Applet 应用程序。用例如下:

用户调用映射到 Servlet 的 URL。servlet 作为响应返回一个 JSP 页面,用户可以从该页面在 UI 中导航。整个 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+),可以连接到Java Web Start的JNLP API 的功能。
    1. JNLP API 提供了在沙盒应用程序或小程序中访问本地文件系统的能力。这是我的小演示。JNLP API 文件服务
    2. JNLP API 还提供了BasicService.showDocument(URL)方法。此版本略优于AppletContext等效版本,因为它返回 aboolean以指示成功/失败。基于小程序的版本可能会失败,如果失败,它会默默地失败。另见演示。BasicService 的

受信任的小程序可以使用此过程。

  1. 弹出一个JFileChooser以允许用户决定将File.
  2. 如果选择器返回一个有效的File(表明该操作未取消)继续保存。
  3. 从. InputStream_URL
  4. 建立一个OutputStreamFile.
  5. 从 读取字节InputStream,将它们写入OutputStream.
  6. 冲洗并重复直到读取产生-1。
于 2011-05-13T07:19:41.403 回答