从Request InputStream读取时写入Response OutputStream

时间:2016-07-20 19:44:52

标签: java servlets

我正在编写一个能够在输入的情况下递增计算其输出的Web服务。换句话说,基础算法是流算法。我正在编写一个servlet来公开这项服务。

Servlet API / HTTP生命周期是否允许servlet在从Response.getOutputStream()读取时以递增方式写入Request.getInputStream()?或者必须在响应开始发送之前完全接收请求?

1 个答案:

答案 0 :(得分:0)

  

Servlet API / HTTP生命周期是否允许servlet在从Request.getInputStream()读取时以递增方式写入Response.getOutputStream()?

Request.getInputStream()主要用于阅读请求正文。 正文请求不是放在正文中的渐进数据,而是由客户端一次性发送,在服务器端,您将逐行读取。

要回答你的问题,不能不做逐步回复。 Servlet HTTP基于经典的http协议。它是一个客户端响应无状态协议。因此,为了在响应中包含渐进数据,客户端必须发送另一个请求。

为了满足您的需求,您应该使用Ajax机制,该机制允许异步地向服务器发送数据和从服务器检索,而无需强制重新加载所有网页。 通过这种方式,您可以定期查询服务器,当从Ajax请求中检索数据时,您可以以渐进的方式更新浏览器中的UI,而无需重新加载所有页面。