在servlet中,HttpServletResponse有一个表明响应所包含内容类型的参数。对PDF文件而言,内容类型是application/pdf。如果servlet没有设置类型,web浏览器很难决定如何处理这个文件,就需要配置下载类型。
resp.setContentType("application/pdf");==<param name="contentType">application/vnd.ms-excel</param>
Content-disposition头提供给浏览器确定HTTP响应内容的信息。当浏览器读到这些头信息后,它能确定:
- HTTP响应包含一个文件
- 包含在响应中的文件名
- 该文件是显示在浏览器主窗口中还是要用外部的应用查看
例1.内嵌显示一个文件
Content-disposition: inline; filename=foobar.pdf
例2.往response里附加一个文件
Content-disposition: attachment; filename=foobar.pdf
下为Struts2 的代码
Xml代码
<action name="generalExcelAction" class="generalExcelAction">
<result name="success" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="contentDisposition">attachment;filename="AllStudent.xls"</param>
<param name="inputName">downloadFile</param>
</result>
</action> attachment:弹出 是否下载的询问.默认为inline
注意:在tomcat配置文件web.xml 中,有各种类型.........................