0

这是我的 JSP 文件。

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
            //JFileChooser filechoose = new JFileChooser();
            JFileChooser filechoose = new JFileChooser("D:\\");
            filechoose.showOpenDialog(null);
            File file = filechoose.getSelectedFile();
            XLCauHoi.ImportXmlFileToData(file);
        %>
        <h4> Đã xuất file thành công </h4>
    </body>
</html>

我的问题是:JFileChooser当我在浏览器上运行它时弹出 2 次。如果我在 Java 类中运行它,会JFileChooser弹出 1 次。我的问题是什么以及如何解决?

4

1 回答 1

5

这里有一个重大的误解。首先,JSP/Java 在网络服务器上运行,生成一堆 HTML/CSS/JS 并将其发送到网络浏览器。Webbrowser 收回 HTML/CSS/JS 并解释/应用/执行它。它不运行任何 Java 代码行,因为它已经在网络服务器上执行。在 webbrowser 中右键单击页面并选择View Source。你看到了吗?如果 webserver 正确地完成了它的工作,您应该不会在其中看到任何 Java 代码行。浏览器就是不理解它。它只理解 HTML/CSS/JS。

JFileChooser在 JSP scriptlet中使用 a从技术上讲,只有当 Web 服务器和 Web 浏览器在物理上同一台机器上运行时才会“工作”。它基本上是显示对话框的网络服务器,而不是网络浏览器。这只会在您本地开发时“起作用”,但在您通过独立的网络服务器将网站发布到万维网时永远不会。

要通过 HTML 上传文件,您需要一个<input type="file">元素,而不是JFileChooser. 有关如何将其与 JSP/Servlet 一起使用的更多详细信息,请查看此答案

至于具体问题,我不知道为什么它会弹出 2 次,但在这种特殊情况下,这应该是您最不关心的问题。

于 2010-12-21T18:05:39.763 回答