Dan*_*ish 6 java servlets spring-mvc
如何将文本输出流式传输到浏览器上的页面以显示可能需要大约15-20秒的操作进度?我已经尝试HttpServletResponse直接写入输出流,但用户在整个过程完成后仍然可以看到完整的输出.
这是我到目前为止所尝试的
@RequestMapping(value = "/test")
public void test(HttpServletResponse response)
throws IOException, InterruptedException {
response.getOutputStream().println("Hello");
response.getOutputStream().flush();
Thread.sleep(2000);
response.getOutputStream().println("How");
response.getOutputStream().flush();
Thread.sleep(2000);
response.getOutputStream().println("are");
response.getOutputStream().flush();
Thread.sleep(2000);
response.getOutputStream().println("you");
response.getOutputStream().flush();
}
Run Code Online (Sandbox Code Playgroud)
我不是 Spring MVC 专家,但我认为你会做一些类似发送“已接受”202 响应代码的事情,这表明服务器已收到请求并将进行一些异步处理。通常,服务器提供一个 URL 以允许客户端发出有关操作状态的请求。您尝试做的事情违反了服务器/客户端关系的通常工作方式。客户端调用服务器,服务器响应然后关闭连接。您在什么情况下尝试这样做以及出于什么原因?也许我可以提供更多见解或想出另一种方法来做到这一点?
| 归档时间: |
|
| 查看次数: |
3275 次 |
| 最近记录: |