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/45791115/

相关文章:

java - JSF(view) + Spring MVC 糟糕的选择?即使在 JSF 成为正式的 EE 规范之后,还有任何替代品吗?

java - Java 类可以拥有的最大方法数是多少?

java - 如何部署到Intellij IDEA Tomcat文件夹?

spring - Eclipse Tomcat 启动太快 - Tomcat 中的 Spring Web App 配置不起作用

Java servlet 的参数值未解码

java - ADT - intelatom 无法选择

java - 搜索 ArrayList 中 Key 的总和 (Java)

java - Tomcat 服务器关闭时出现 NullPointerException

java - this.start() 不运行威胁在线服务器

java - jsp 中的源 javascript 文件与 spring mvc <3.0.4