gpt4 book ai didi

java - 从 Applet 下载文件

转载 作者:行者123 更新时间:2023-11-30 07:33:15 24 4
gpt4 key购买 nike

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

用户调用映射到 Servlet 的 URL。作为响应的 servlet 返回一个 JSP 页面,用户可以从该页面在 UI 中导航。整个 UI 由 Swing [基本上是一个 JApplet] 构成。 UI 中的事件以传统方式处理 [ActionListeners, SelectionListeners...]。现在我有以下需求:

服务器目录中有一个文件,我应该允许用户通过我的应用程序下载该文件。我需要在我的 UI 中为用户提供一个链接,点击该链接将触发下载。

考虑到 JApplets 的安全特性,可以这样做吗?还要考虑Swing组件的事件处理机制。

最佳答案

沙盒小程序的选项。

有 2(.2) 种方法(我可以立即想到)。

  1. 使用AppletContext.showDocument(URL,String)使用浏览器触发下载的方法。
  2. 对于基于“下一代”插件 2 的小程序(在 Sun/Oracle 的 JVM 中为 1.6.0_10+),可以连接到 JNLP 的功能中。 API Java Web Start .
    1. JNLP API 提供了访问沙盒应用程序或小程序中的本地文件系统的能力。这是我的小demo. of the JNLP API file services .
    2. JNLP API 还提供了 BasicService.showDocument(URL)方法。这个版本略优于 AppletContext 等价物,因为它返回一个 boolean 来指示成功/失败。基于 applet 的版本可能会失败,如果失败,它会默默地这样做。另见 demo. of the BasicService .

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

  1. 弹出一个 JFileChooser 以允许用户决定将 File 保存在何处。
  2. 如果选择器返回一个有效的File(表示操作没有被取消)继续保存。
  3. URL 获取一个 InputStream
  4. File 建立一个 OutputStream
  5. InputStream中读取字节,写入OutputStream
  6. 冲洗并重复直到 read 产生 -1。

关于java - 从 Applet 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5988417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com