我正在编写一个能够在输入的情况下递增计算其输出的Web服务。换句话说,基础算法是流算法。我正在编写一个servlet来公开这项服务。
Servlet API / HTTP生命周期是否允许servlet在从Response.getOutputStream()
读取时以递增方式写入Request.getInputStream()
?或者必须在响应开始发送之前完全接收请求?
答案 0 :(得分:0)
Servlet API / HTTP生命周期是否允许servlet在从Request.getInputStream()读取时以递增方式写入Response.getOutputStream()?
Request.getInputStream()
主要用于阅读请求正文。
正文请求不是放在正文中的渐进数据,而是由客户端一次性发送,在服务器端,您将逐行读取。
要回答你的问题,不能不做逐步回复。 Servlet HTTP基于经典的http协议。它是一个客户端响应无状态协议。因此,为了在响应中包含渐进数据,客户端必须发送另一个请求。
为了满足您的需求,您应该使用Ajax机制,该机制允许异步地向服务器发送数据和从服务器检索,而无需强制重新加载所有网页。 通过这种方式,您可以定期查询服务器,当从Ajax请求中检索数据时,您可以以渐进的方式更新浏览器中的UI,而无需重新加载所有页面。