Java JSP:在客户端保存文件,而不将其存储在服务器上
在我的jsp中,有人想将查询结果导出到csv。不能使用框架。目前,流程如下:Java JSP:在客户端保存文件,而不将其存储在服务器上,java,html,jsp,download,Java,Html,Jsp,Download,在我的jsp中,有人想将查询结果导出到csv。不能使用框架。目前,流程如下: 按下按钮,转到servlet 为csv准备数据 制作csv并保存到服务器 返回jsp,让他们从锚标记下载新生成的文件 问题是,我不想在服务器上创建这个文件,因为我必须在以后处理它,但我仍然想给用户“另存为”窗口。那么,有没有一种方法,比如在会话中放置一个OutputStream对象,来实现这个结果? 谢谢大家! 是的。您不需要保存该文件。只需将其保存在会话中,并在内存中将其发送到OutputStream。为了节省内存,
谢谢大家! 是的。您不需要保存该文件。只需将其保存在会话中,并在内存中将其发送到
OutputStream
。为了节省内存,我会在指定时间后或交付后将其丢弃
适当设置内容类型和内容配置。这意味着浏览器将正确解释输出,并提示用户保存输出或启动相应的应用程序
有关更多详细信息,请参阅。servlet可以生成任何类型的内容。因此,当您单击按钮运行servlet时,只需让servlet在此时将文件写回客户机即可。您需要将
内容类型
标题设置为“”(并确保正确设置编码)。您不需要设置内容长度
标题;浏览器可以处理这个问题
当servlet将数据返回到浏览器时,系统将提示用户保存文件或使用应用程序打开文件。对不起,您能解释一下您的确切意思吗?如果我将文件保存在outputstream中,并在会话中设置该文件,我如何从jsp/html访问它?抱歉,如果这看起来很琐碎,对客户端不太熟悉!在会话中保存文件可能会有问题,尤其是一个大文件(如果您有群集服务器,则更是如此)。在会话中以您希望的任何形式保存数据,并在输出时简单地呈现为CSV。另请注意parsifal关于重新聚类的评论