如何判断javax.servlet是否成功发送响应

时间:2013-04-05 21:38:18

标签: java servlets jetty

我正在使用jetty服务器来处理http请求。我想知道是否有任何方法可以检查响应是否已成功发送回客户端。是否存在我可以检查的错误代码或状态,或者如果由于任何原因转移到客户端失败,我可以捕获异常?

由于

1 个答案:

答案 0 :(得分:2)

  

是否存在我可以检查的错误代码或状态,或者如果由于任何原因转移到客户端失败,我可以捕获到异常?

听起来您希望服务器能够知道响应是否完全传递给客户端。

简单的答案是没有办法知道这一点。 TCP / IP不支持此功能,HTTP不支持此功能,并且Servlet API不支持此功能。

在某些情况下,如果服务器注意到客户端提前关闭了连接,则可能会抛出异常。但是不能保证它会注意到,或者它将导致应用程序servlet代码可见的异常。事实上,在servlet调用返回之前,很可能不会注意到关闭(如果有的话)。


如果你想为网页实现某种“响应传递”确认,你可以在网页中嵌入一些“onload”Javascript,将一个AJAX请求发送回服务器。但是,您必须考虑用户已禁用Javascript的情况,或者原始请求是由非浏览器应用程序发出的。