【问题标题】:What is the use of response.addHeader when we have response.setContentType in java当我们在java中有response.setContentType时response.addHeader有什么用
【发布时间】:2013-07-30 06:43:29
【问题描述】:

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

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

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

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

请...

【问题讨论】:

    标签: java jsp jakarta-ee servlets response


    【解决方案1】:

    这个特定的标题:

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

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

    同时检查HTTP/1.1 specs

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

    一个例子是

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

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

    如果此标头用于带有 application/octet- 的响应中 流内容类型,隐含的建议是用户代理 不应该显示响应,而是直接输入一个`save response 作为...的对话框。

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


    恕我直言,不要使用 JSP 进行下载,而是使用 Servlet!

    【讨论】:

      【解决方案2】:

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

      而 IMO 这只是一条捷径。

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

      【讨论】:

        猜你喜欢
        • 2023-03-15
        • 1970-01-01
        • 2015-05-29
        • 2023-01-24
        • 2017-01-04
        • 2014-08-04
        • 2022-01-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多