很难确定如何将动态数据发送到网络应用的用户,而无需创建文件和文件。使用Java技术使用动态链接到静态内容。 (避免在磁盘上创建文件的主要原因是安全性和速度)
这是我之前在python中所做的事情,但是这个web-app旨在严格用于维护目的的Java技术。
在google中进行了一些搜索之后,我还没有进一步了解。有没有人以前做过这个或有一个好主意的起点?
答案 0 :(得分:4)
您可以从servlet输出任何类型的内容类型。只需将标题设置为正确,然后将要发送的内容转储到请求正文中。
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + file);
// generate the content and send it to response.getOutputStream()
这会将内容类型设置为excel文件,并强制浏览器下载文件。
作为奖励,您可以告诉您的servlet收听特定路径,并使用真实文件名设置链接。
<servlet-mapping>
<servlet-name>Export</servlet-name>
<url-pattern>/export/*</url-pattern>
</servlet-mapping>
<a href="<%=request.getContextPath()%>/export/Myreport.xls">
Myreport.xls
</a>