繁体   English   中英

JSP:在客户端上保存文件而不将其存储在服务器上

[英]JSP: save a file on client without storing it on server

在我的jsp中,有人想将查询结果导出到csv。 不能使用框架。 目前,这是一个过程:

  1. 按下按钮,转到servlet
  2. 为csv准备数据
  3. make csv并保存到服务器
  4. 回到jsp,让他们从锚标签下载新制作的文件。

事实是,我不想在服务器上创建这个文件,因为我必须在之后处理它,但我仍然想给用户“另存为”窗口。 那么,是否有一种方法,例如在会话中放置一个OutputStream对象来实现这个结果? 谢谢你们!

servlet可以生成任何类型的内容。 因此,当您单击按钮以运行servlet时,只需让servlet将文件写回客户端。 您需要将Content-type标头设置为“ text / csv ”(并确保正确设置编码)。 您不需要设置Content-Length标头; 浏览器可以处理。

当servlet将数据返回给浏览器时,将提示用户保存文件或使用应用程序打开它。

是。 您无需保存文件。 只需在会话中保留它并将其在内存中发送到OutputStream 我会在给定时间后或分娩后将其丢弃以节省内存。

适当地设置内容类型和内容配置。 这意味着浏览器会正确解释输出并提示用户保存输出或启动相应的应用程序。

有关详细信息,请参阅此SO答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM