我有一种似乎适合异步Servlet 3.0/Comet情况的情况,但我需要做的是在接受传入参数后返回200响应代码(或其他)。完成HttpServletResponse,但继续处理
有没有办法让HttpServlet完成http请求/响应握手并继续处理?
喜欢的东西...
doPost(req, response) {
// verify input params...
response.setStatus(SC_OK);
response.close();
// execute long query
}
编辑:纵观javax.servlet包 - 适当的措辞我的问题是
如何犯下的反应?
在Servlet.isCommitted()
“承诺”是指响应流中的某些部分已经被发送到客户端。它不能被收回或修改。理论上,只要您设置标题或写入响应,它就会发生,但通常是容器缓冲区,所以稍后会发生。 我认为这与你无关。不要关闭响应流。只需设置状态,按照其他答案启动线程,让doPost()完成。 – 2010-03-05 12:15:35
我试着使用response.sendError(SC_OK),但它仍然没有刷新对请求者的响应。看起来,关闭servlet请求的唯一方法是从doPost()返回。 – Stevko 2010-03-05 17:49:51