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

发布于 2024-09-10 10:19:03 字数 209 浏览 2 评论 0原文

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

对于 Servlet,使用 javax.servlet.http.HttpServletResponse 很容易,但是对于 applet 来说这可能吗?

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

I'm trying create a new file with a Java Applet, but I don't know how send this file to the response output of the browser, such as any typical webpage.

With a Servlet it is easy with javax.servlet.http.HttpServletResponse, but is this possible with a applet?

I'm trying do this without sign the applet or use any servlet.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

想你只要分分秒秒 2024-09-17 10:19:03

不要为此使用小程序。与 Servlet 一起使用。

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

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

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

Don't use an applet for this. Go with the Servlet.

Why do you want to do this inside the applet? It will never be able to write anything to disk if you don't sign it, and it can only communicate with the browser through some Javascript API, not send a file directly. You can combine the functionality in your applet perfectly with Servlets, and direct the browser to any relevant page:

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

That will open a new window in the browser, and download the file.

-柠檬树下少年和吉他 2024-09-17 10:19:03

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

Oracle 的这篇文章介绍了这些步骤。

An applet is basically just a JAR file which you put on your web server and then you add a JNLP description so the browser knows what to do. Think of it as a complex HTML page because it doesn't go into WEB-INF but besides the other files for the browser (HTML, external JavaScript, images, CSS, ...)

This article from Oracle describes the steps.

波浪屿的海角声 2024-09-17 10:19:03

小程序可以从其来源的 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!)
}

An applet can request resources from the web server it came from, e.g. images - Applet.getImage() or fetch other files like so:

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!)
}
下壹個目標 2024-09-17 10:19:03

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

You may, or may not, want to use LiveConnect to modify the DOM of the current page. It depends what you are generating. Typically you would want to generate on the server.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文