Java Applet - 使用浏览器下载文件

时间:2010-07-21 09:20:38

标签: java applet servlets

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

使用Servlet可以轻松使用javax.servlet.http.HttpServletResponse,但这可以通过applet实现吗?

我正在尝试这样做而不签署applet或使用任何servlet。

4 个答案:

答案 0 :(得分:2)

请勿使用小程序。使用Servlet。

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

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

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

答案 1 :(得分:0)

applet基本上只是一个放在Web服务器上的JAR文件,然后添加JNLP描述,以便浏览器知道该怎么做。可以把它想象成一个复杂的HTML页面,因为它不会进入WEB-INF,而是除了浏览器的其他文件(HTML,外部JavaScript,图像,CSS ......)

来自Oracle的

This article描述了这些步骤。

答案 2 :(得分:0)

applet可以从它来自的Web服务器请求资源,例如:图像 - 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!)
}

答案 3 :(得分:0)

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