我使用的是jetty的嵌入式版本。我注意到以下几点:
在处理程序方法中,如果我想直接用HTTP OK响应响应,那么睡眠x秒,处理程序正在做相反的事情。这是正常的吗?句柄功能如下:
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println("OK");
Thread.sleep(10000);
}
这个混蛋睡了10秒然后回复了回复,为什么会这样?
答案 0 :(得分:1)
您需要致电
response.flushBuffer();
在你睡觉之前。
从这个方法的JavaDoc:
强制将缓冲区中的任何内容写入客户端。一个电话 这个方法自动提交响应,意味着状态 代码和标题将被写入。