Java Applet - 使用浏览器下载文件
我正在尝试使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不要为此使用小程序。与 Servlet 一起使用。
为什么要在小程序内部执行此操作?如果您不对其进行签名,它将永远无法将任何内容写入磁盘,并且它只能通过某些 Javascript API 与浏览器进行通信,而不能直接发送文件。您可以将小程序中的功能与 Servlet 完美结合,并将浏览器定向到任何相关页面:
这将在浏览器中打开一个新窗口,并下载文件。
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:
That will open a new window in the browser, and download the file.
小程序基本上只是一个 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.
小程序可以从其来源的 Web 服务器请求资源,例如图像 -
Applet.getImage()
或获取其他文件,如下所示:An applet can request resources from the web server it came from, e.g. images -
Applet.getImage()
or fetch other files like so:您可能想也可能不想使用 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.