Ste*_*vko 8 java servlets comet http
我的情况似乎符合Async Servlet 3.0/Comet情况,但我需要做的就是在接受传入参数后返回200响应代码(或其他).
有没有办法让HttpServlet完成http请求/响应握手并继续处理?
就像是...
doPost( req, response ) {
// verify input params...
response.setStatus( SC_OK );
response.close();
// execute long query
}
Run Code Online (Sandbox Code Playgroud)
编辑:看看javax.servlet包 - 我的问题的正确措辞是
我如何提交回复?
在Servlet.isCommitted()中
以下是我处理这种情况的方法:
ExecutorServicewith Executors.newFixedThreadPool(numThreads)(还有其他类型的执行程序,但我建议从这个开始)doPost(),创建一个实例Runnable将执行所需的处理 - 您的任务 - 并将其提交给ExecutorService类似,所以:executor.execute(task)202 Accepted,如果可能的话,还应该返回一个Location标题,指示客户端能够检查处理状态的位置.我强烈建议您阅读Java Concurrency in Practice,这是一本非常棒且非常实用的书.