HttpServletResponse:如何确定底层连接是否仍然打开?

时间:2011-12-30 10:59:08

标签: java java-ee servlets

它是这样的:在Tomcat上运行的基于Web的应用程序6.客户端向服务器发送请求,服务器进行一些处理,重定向到第三方URL并再次进行一些处理。

在进行重定向之前,我想知道客户端连接是否仍然打开(这样我就可以阻止第二次处理)。我知道sendRedirect会抛出IOException& IllegalStateException和重定向失败时可以处理的那些。

我还尝试从响应中获取输出流并将任何垃圾字符写入流中。但是没有用(即使我在调用请求后从局域网中删除了客户机)

我想知道 - 有什么方法可以确定客户端和服务器之间的连接是否仍然有效?

1 个答案:

答案 0 :(得分:1)

古老的问题,但我正在处理类似的问题,并找到了解决方案。

仅当服务器将某些内容发送回客户端并且失败时,才可以检测到异常终止的HTTP连接。要强制将数据发送到客户端,必须在HttpServletResponse上调用flushBuffer()。如果连接中止,则会抛出ClientAbortException