我知道标题有点令人困惑。我将描述我的任务:
现在我正在编写一个网页,允许我下载一些数据或做一些其他的事情。前端是jsp,后端是java。因此,每当我在此页面上执行某些操作(例如,对数据进行排序或下载数据)时,将向java发送请求,并且在数据处理之后,.jsp页面将被刷新并再次加载(排序后的原因应该是刷新)。但我发现,如果我使用以下代码下载数据,则刷新将被中断:
OutputStream out = response.getOutputStream(); // response is HttpServletResponse
doSomeOutput(out); // Just write something into OutputStream
out.flush(); // **PAY ATTENTION**. The refreshing is interrupted here!
out.close();
当我调试时,页面一直在加载,直到第三行。然后页面没有刷新,数据被下载。
我希望你能理解我在说什么:(
所以现在我有两个问题:1。我怎样才能让这个过程在out.flush()之后继续工作? 2.在我的任务中,我需要在其他一些模块中使用相同的行为(过程中断),但是没有什么可以下载的。那么除了out.flush();我怎么能打断这个过程?
谢谢你们!!
答案 0 :(得分:0)
1) https://docs.oracle.com/javaee/5/api/javax/servlet/ServletResponse.html#getOutputStream%28%29 "在ServletOutputStream上调用flush()会提交响应"
据我所知:主动刷新已停止,因为我们获得了数据的主要部分。但即使提交后你也可以发送数据。所以你可以在冲洗后继续工作。 设置标题也会以flush发送。
2)请更详细地解释。打电话"返回"或关闭?