我使用JS获取变量,然后对Servlet进行POST调用。我没有明确地使用Ajax。
$('#download').click(function (e) {
....
$.post('downloadServlet', {'var': variable});
//e.preventDefault();
});
Servlet有代码来读取文件,理论上发送它,但我没有得到任何响应。
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
....
response.setContentType("application/octet-stream");
response.setContentLength(...);
response.setHeader( "Content-Disposition", String.format("attachment; filename=%s", path.getFileName()));
try (OutputStream out = response.getOutputStream()) {
Files.copy(path, out);
out.flush();
}
System.out.println("Done");
我的问题是为什么没有发送/接收文件?从技术角度来看,我不确定我理解为什么它不起作用,因为我没有使用Ajax。 POST方法似乎像任何正常的提交表单一样执行。我已阅读this但未澄清。任何教学解释都将受到赞赏。