【问题标题】:Java Applet - Download File with BrowserJava Applet - 使用浏览器下载文件
【发布时间】:2010-07-21 09:20:37
【问题描述】:

我正在尝试使用 Java Applet 创建一个新文件,但我不知道如何将此文件发送到浏览器的响应输出,例如任何典型的网页。

使用 Servlet,使用 javax.servlet.http.HttpServletResponse 很容易,但是使用小程序可以做到吗?

我正在尝试在不签署小程序或使用任何 servlet 的情况下执行此操作。

【问题讨论】:

  • 我不认为你的问题很清楚。您想知道如何将 Applet 导入 Web 浏览器或将文件导入正在运行的 Applet?还是别的什么?

标签: java applet servlets


【解决方案1】:

不要为此使用小程序。使用 Servlet。

为什么要在小程序中执行此操作?如果您不对其进行签名,它将永远无法将任何内容写入磁盘,并且它只能通过一些 Javascript API 与浏览器通信,而不能直接发送文件。您可以将您的小程序中的功能与 Servlet 完美结合,并将浏览器定向到任何相关页面:

AppletContext a = getAppletContext();
URL url = new URL(link_to_your_servlet);
a.showDocument(url,"_blank");

这将在浏览器中打开一个新窗口,然后下载文件。

【讨论】:

    【解决方案2】:

    小程序基本上只是一个 JAR 文件,您将其放在 Web 服务器上,然后添加 JNLP 描述,以便浏览器知道该做什么。将其视为一个复杂的 HTML 页面,因为它不进入 WEB-INF,但除了浏览器的其他文件(HTML、外部 JavaScript、图像、CSS ......)

    来自 Oracle 的This article 描述了这些步骤。

    【讨论】:

      【解决方案3】:

      小程序可以从它所来自的网络服务器请求资源,例如图片 - Applet.getImage() 或像这样获取其他文件:

      URL url = new URL("myfile.txt");
      URLConnection uc = url.openConnection();
      InputStream in = new BufferedInputStream(uc.getInputStream());
      
      int d;
      while ((c = in.read()) != -1) {
        // do something with d (remember to cast to byte!)
      }
      

      【讨论】:

        【解决方案4】:

        您可能想要也可能不想使用 LiveConnect 来修改当前页面的 DOM。这取决于你正在生成什么。通常您会希望在服务器上生成。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-25
          • 2022-06-16
          • 2012-11-09
          • 2012-07-04
          • 1970-01-01
          • 2014-10-06
          相关资源
          最近更新 更多