Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP:在客户端保存文件,而不将其存储在服务器上_Java_Html_Jsp_Download - Fatal编程技术网

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

Java JSP:在客户端保存文件,而不将其存储在服务器上,java,html,jsp,download,Java,Html,Jsp,Download,在我的jsp中,有人想将查询结果导出到csv。不能使用框架。目前,流程如下: 按下按钮,转到servlet 为csv准备数据 制作csv并保存到服务器 返回jsp,让他们从锚标记下载新生成的文件 问题是,我不想在服务器上创建这个文件,因为我必须在以后处理它,但我仍然想给用户“另存为”窗口。那么,有没有一种方法,比如在会话中放置一个OutputStream对象,来实现这个结果? 谢谢大家! 是的。您不需要保存该文件。只需将其保存在会话中,并在内存中将其发送到OutputStream。为了节省内存,

在我的jsp中,有人想将查询结果导出到csv。不能使用框架。目前,流程如下:

  • 按下按钮,转到servlet
  • 为csv准备数据
  • 制作csv并保存到服务器
  • 返回jsp,让他们从锚标记下载新生成的文件
  • 问题是,我不想在服务器上创建这个文件,因为我必须在以后处理它,但我仍然想给用户“另存为”窗口。那么,有没有一种方法,比如在会话中放置一个OutputStream对象,来实现这个结果?
    谢谢大家!

    是的。您不需要保存该文件。只需将其保存在会话中,并在内存中将其发送到
    OutputStream
    。为了节省内存,我会在指定时间后或交付后将其丢弃

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


    有关更多详细信息,请参阅。

    servlet可以生成任何类型的内容。因此,当您单击按钮运行servlet时,只需让servlet在此时将文件写回客户机即可。您需要将
    内容类型
    标题设置为“”(并确保正确设置编码)。您不需要设置
    内容长度
    标题;浏览器可以处理这个问题


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

    对不起,您能解释一下您的确切意思吗?如果我将文件保存在outputstream中,并在会话中设置该文件,我如何从jsp/html访问它?抱歉,如果这看起来很琐碎,对客户端不太熟悉!在会话中保存文件可能会有问题,尤其是一个大文件(如果您有群集服务器,则更是如此)。在会话中以您希望的任何形式保存数据,并在输出时简单地呈现为CSV。另请注意parsifal关于重新聚类的评论