一尘不染

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

tomcat

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

编辑

Servlet发出的数据流不一定会结束,但不一定有任何数据流过它(它是实时事件流)。我实际上需要检测客户端何时断开连接,因为那时候我需要做一些清理工作(释放资源等)。如果我有HttpServletRequest可用,如果客户端断开连接,是否尝试从中读取抛出IOException?


阅读 776

收藏
2020-06-16

共1个答案

一尘不染

有没有一种方法可以在不写入任何数据的情况下检测到此问题?

不可以,因为TCP / IP中没有一种方法可以在不写入任何数据的情况下对其进行检测。

不用担心 只需完成请求操作并编写响应即可。如果客户端消失,则将导致IOException:连接重置,这将被抛出到servlet容器中。您无需为此做任何事情。

2020-06-16