我有一種似乎適合異步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