如何检测 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/