在客户端断开连接后,进程是否仍然继续

时间:2012-11-27 22:41:38

标签: java servlets request

当客户端过早地断开服务器请求时,服务器是否仍然执行其余工作?
具体来说,如果我有以下代码,请在Java Servlet doGet中:


public void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException 
{
   A();  //client disconnects after A(); 
   B(); 
   C();  
}

if client disconnects after A() is finished, would B and C still get executed?

2 个答案:

答案 0 :(得分:3)

是的。在尝试将输出流写入输出流之前,服务器不知道断开连接(作为响应)。然后由于代理服务器之间的事件或者由于输出流缓冲,可能很难知道客户端已断开连接。

答案 1 :(得分:1)

取决于。

如果在A()(或任何其他方法)期间尝试将响应(使用res)发送回客户端,则会抛出IOException。如果没有捕获,它将终止servlet的执行。

否则计算将在C()之后继续进行并退出。