4

当我们在java中已经有了response.setContentType时,我可以知道response.addHeader的使用......我找不到合适的解决方案。

<% response.addHeader("Content-Disposition","attachment;filename=Report.xls"); %>

<% response.setContentType("application/vnd.ms-excel"); %>

这里上面的第二条语句足以得到 excel 格式的响应。我需要在哪种情况下使用 response.addHeader ?

请 ...

4

2 回答 2

6

这个特定的标题:

"Content-Disposition","attachment;filename=Report.xls"

告诉浏览器以默认名称的附件形式下载文件Report.xls

还要检查HTTP/1.1 规范

如果用户请求将内容保存到文件中,则 Content-Disposition 响应头字段已被提议作为源服务器建议默认文件名的一种方式。

一个例子是

    Content-Disposition: attachment; filename="fname.ext"

接收用户代理不应该尊重 filename-parm 参数中存在的任何目录路径信息,这是目前唯一被认为适用于 HTTP 实现的参数。文件名应仅被视为终端组件。

如果此标头用于内容类型为 application/octet-stream 的响应中,则暗示用户代理不应显示响应,而是直接输入“将响应另存为...”对话框。

但请记住,HTTP/1.1 定义了Content-Disposition响应头字段,但指出它不是 HTTP/1.1 标准的一部分。


恕我直言,不要使用 JSP 来下载东西,而是使用 Servlet !

于 2013-07-30T08:15:53.347 回答
0

我不是用 Java 编写的,但我知道有很多共享相同的功能。

而 IMO 这只是一条捷径。

顺便说一句,有很多标题......不仅仅是 Content-Type 或类似的东西。

于 2013-07-30T08:15:31.527 回答