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

标签 java servlets jetty

我正在使用 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/

相关文章:

java - Terracotta可以让同行协商谁是master吗?

java - 我可以在 Tomcat 上加载 servlet 类之前运行代码吗?

java - 如何使用带有嵌入式 Jetty 的 Jersey 2.3 在启动时加载 servlet

java - java中等待异步http请求

java - 为 Sitemesh 选择合适的 url 模式以从其装饰器中排除我的 servlet?

Java Util 可选代码到 Guava 可选映射和过滤器

java - 为什么在 web.xml 文件中隐藏 .jsp 扩展名时出现 404 错误?

java - 我无法将日期变量传递给构造函数 - 无法解析

java - (Axis + Jetty) Prefix 自动生成的前缀命名空间

java - 如何使用 ALPN 通过 SPDY 运行 Jetty?