java - 在 tomcat servlet 中检测客户端断开连接?

标签 java tomcat servlets

如何检测 tomcat servlet 请求的客户端已断开连接?我读过,我应该执行一个response.getOutputStream().print(),然后执行一个response.getOutputStream().flush()并捕获一个IOException,但是有没有一种方法可以在不写入任何数据的情况下检测到这一点?

编辑:

servlet 发出一个数据流,该数据流不一定结束,但也不一定有任何数据流经其中(它是实时事件流)。我需要实际检测客户端何时断开连接,因为此时我必须进行一些清理(要释放的资源等)。如果我有可用的 HttpServletRequest,如果客户端断开连接,尝试读取该请求是否会抛出 IOException?

最佳答案

is there a way I can detect this without writing any data?

不可以,因为 TCP/IP 中没有办法在不写入任何数据的情况下检测到它。

不用担心。只需完成请求操作并编写响应即可。如果客户端消失,将导致 IOException: 连接重置,该异常将被扔到 servlet 容器中。您无需对此执行任何操作。

关于java - 在 tomcat servlet 中检测客户端断开连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45018018/

相关文章:

java - 组织.eclipse.swt.SWTException : Invalid thread access

java - log4j 干扰 - 级别一直设置为 "OFF"

java - 我可以从 64 位 Java 运行 runtime.exec() 一个 32 位批处理文件吗?

java - Servlet 响应错误的动态错误页面

java - 管理来自同一个 servlet 的两个 JSP 输出

Java SimpleDateFormat 不可解析的日期

java - Web 服务器上的 Php 或 Java

java - 多 J2EE 应用程序系统中具有惰性字段的实体的最佳实践

Tomcat 8 找不到用于启用 https 的 keystore

gwt - 在 gwt 中提交表单面板时调用 servlet