【发布时间】:2012-11-15 16:19:23
【问题描述】:
当客户端过早地与服务器请求断开连接时,服务器是否仍会执行其余的工作?
具体来说,如果我有以下代码,则在 Java Servlet doGet 中:
【问题讨论】:
当客户端过早地与服务器请求断开连接时,服务器是否仍会执行其余的工作?
具体来说,如果我有以下代码,则在 Java Servlet doGet 中:
【问题讨论】:
是的。服务器不知道断开连接,直到它尝试将某事物写入输出流(作为响应)。然后由于中间的代理服务器或由于输出流缓冲而导致的事件,可能很难知道客户端已断开连接。
【讨论】:
视情况而定。
如果在A()(或任何其他方法)期间,您尝试将响应(使用res)发送回客户端,则会抛出IOException。如果没有被捕获,它将终止 servlet 的执行。
否则计算会在C()之后继续并退出。
【讨论】: