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