这是我的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
会弹出一次。
我的问题是什么以及如何解决?
答案 0 :(得分:5)
这里有一个重大的误解。首先,JSP / Java在Web服务器上运行,生成一堆HTML / CSS / JS并将其发送到webbrowser。 Webbrowser退出HTML / CSS / JS并解释/应用/执行它。它不运行任何Java代码行,因为它已经在Web服务器上执行。右键单击webbrowser中的页面,然后选择查看源。你看到了吗?如果webserver完成了它的工作,你不应该在那里看到任何Java代码行。 webbrowser即不理解它。它只能理解HTML / CSS / JS。
在JSP scriptlet 中使用JFileChooser
在技术上只有当webserver和webbrowser在物理上在同一台机器上运行时才“工作”。它基本上是显示对话框的Web服务器,而不是webbrowser。这只会在您进行本地开发时“起作用”,但从未通过独立的Web服务器将网站发布到万维网时。
要按HTML上传文件,您需要<input type="file">
元素,而不是JFileChooser
。有关如何将其与JSP / Servlet一起使用的更多详细信息,请查看this answer。
至于具体的问题,我不知道它为什么弹出2次,但在这种特殊情况下,这应该是你最不关心的问题。