从servlet返回文件和JSON

时间:2013-07-09 13:31:56

标签: java servlets

如何在一个响应中从Java servlet文件流和其他一些参数(例如JSON)返回?我相信它是可以实现的,因为我们从servlet字节流返回它可以包含文件流和JSON流。但我认为这是非常容易出错的,我自己尝试解析这样的请求,所以我需要一些库来解析响应参数。我不想发出2个单独的请求..

3 个答案:

答案 0 :(得分:2)

您可以将其全部作为JSON返回,在base64中编码二进制流并将其包含在JSON响应中。它不一定有效,但取决于所涉及的尺寸。

答案 1 :(得分:2)

根据ServletResponse Java doc

  • 要在MIME正文响应中发送二进制数据,请使用getOutputStream()返回的ServletOutputStream。
  • 要发送字符数据,请使用getWriter()返回的PrintWriter对象。
  • 要混合二进制和文本数据,例如,要创建多部分响应,请使用ServletOutputStream并手动管理字符部分。

因此,您可以在输出流和处理响应时提取两者。

答案 2 :(得分:0)

您可以使用Multipart。一部分用于您的JSON,一部分用于其他内容。

原则是构建在同步/异步响应中返回的多部分MimeMessage