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: connection reset,这将被抛入 servlet 容器中。您无需为此做任何事情。

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

相关文章:

java - Runtime.freeMemory() 和公司或提前分配,以防止后期内存不足错误

java - dynamoDB 事务管理器

java - 如何在执行eclipse Project clean时启动ant clean target

java - 列出java中的文件夹和子文件夹

java - Jersey 停止使用 InjectionManagerFactory 未找到

Tomcat 9 HTTP2 连接器在使用 ResponseEntity 发送字节数组时遇到问题

jsp - JSP 与 Tomcat 中的 NullPointerException

java - 试图将 Tomcat servlet 的 http 请求发送到另一台服务器,卡在 HttpClientBuilder.create().build();

java - 使用文档根设置嵌入式 jetty

servlets - 调用 servlet 会导致 HTTP 状态 404 "The requested resource is not available"