JFileChooser弹出2次

0 java swing jsp jfilechooser

这是我的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>
Run Code Online (Sandbox Code Playgroud)

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

Bal*_*usC 5

这里有一个重大的误解.首先,JSP/Java在Web服务器上运行,生成一堆HTML/CSS/JS并将其发送到webbrowser.Webbrowser退出HTML/CSS/JS并解释/应用/执行它.它不运行任何Java代码行,因为它已经在Web服务器上执行.右键单击webbrowser中的页面,然后选择" 查看源".你看到了吗?如果webserver完成了它的工作,你不应该在那里看到任何Java代码行.webbrowser即不理解它.它只能理解HTML/CSS/JS.

当Web服务器和webbrowser在物理上在同一台机器上运行时JFileChooser,在JSP scriptlet中使用a 技术上只会"工作".它基本上是显示对话框的Web服务器,而不是webbrowser.这只会在您进行本地开发时"起作用",但从未通过独立的Web服务器将网站发布到万维网时.

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

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