我正在使用 jetty 服务器来处理 http 请求。我想知道是否有任何方法可以检查响应是否已成功发送回客户端。是否有我可以检查的错误代码或状态,或者如果由于任何原因向客户端传输失败,我可以捕获异常吗?
谢谢
最佳答案
Is there an error code or status that I can check, or an exception I can catch if the transfer to the client failed for any reason?
听起来您希望服务器能够知道响应是否已完全传递给客户端。
简单的答案是没有办法知道这一点。 TCP/IP 不支持此功能,HTTP 不支持此功能,Servlet API 也不支持此功能。
在某些情况下,如果服务器发现客户端提前关闭了连接,则可能会抛出异常。但不能保证它会注意到,或者会导致应用程序 servlet 代码可见的异常。事实上,在 servlet 调用返回之前,很可能不会注意到关闭(如果有的话)。
<小时/>如果您想为网页实现某种“响应传递”确认,您可以在网页中嵌入一些“onload”Javascript,将 AJAX 请求发送回服务器。但是你必须考虑用户禁用了 Javascript 的情况,或者原始请求是由非浏览器应用程序发出的。
关于java - 如何判断 javax.servlet 是否成功发送响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15844033/