我有一个servlet,其中的一个动作可以根据从表单中传递过来的参数生成一个CSV文件。 servlet代码段看起来像这样:由servlet生成的文件没有下载
response.setContentType("text/csv");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition","attachment; filename=" + filename);
PrintWriter pw = response.getWriter();
pw.println(content); // content is some CSV in a string
pw.close();
的浏览器(二者FF和铬)似乎被忽略附件指示器,因为它改变URL到相应的动作(例如http://myserver.com/filedownload)和不呈现另存为对话。我检查Chrome的响应头,它看起来像这样(编辑现在显示完整的,“未解析”标头):
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Disposition: attachment; filename=JobTracking.csv
Content-Type: text/csv;charset=UTF-8
Content-Length: 16876
Date: Tue, 15 Jul 2014 22:32:49 GMT
..和“响应”选项卡显示我的内容写入回复。
我接近我的智慧结局,因为我看过的所有例子都很成功。
请张贴浏览器接收完整的响应。也许有一个重定向发生? –
通过“完全响应”,您是指Chrome开发人员工具窗口中“响应”选项卡上的内容?这只是将CSV写入响应。我编辑了问题以显示“未解析的”响应标题。 –
什么是请求URI,以及“相应操作”是什么意思? –