求大神,,response.write页面下载,弹出对话框点击取消后java后续代码不执行

小爪001 2013-10-15 04:13:53
如题,我后台字符串数据用response.write写出到页面下载,弹出对话框点击取消后,后台java代码不继续执行,怎么办,我觉得下载时候虚拟机另起了一个线程,点击下载框中取消时后台抛异常了,但是我抓不到,但是我需要执行后面的代码.怎么办?
public String export(){

HttpServletResponse response = ServletActionContext.getResponse();
try {
for (int j = 0; j <500 ; j++) {
response.getWriter().write("aaaaa");//线程可能在这里停止,停止位置看我输出的数据大小
}
for (int j = 0; j < 500; j++) {
response.getWriter().write("bbbb"); //线程可能在这里停止
}

} catch (IOException e) {
e.printStackTrace();
}finally{
try {
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
e.printStackTrace();
}
}

System.out.println("我要执行这段代码,可是到前面就停止了,这段代码根本执行不到这里");
return null;
}
...全文
159 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunbo624 2013-10-16
  • 打赏
  • 举报
回复
引用 4 楼 cao13935193800 的回复:
[quote=引用 3 楼 sunbo624 的回复:] write换成print 输出一次再flush()一下 是不是缓冲区满了
确实是缓存区满了,但是当缓存够了1024b时代码就停止运行了,flush什么的不起作用[/quote] 可能是printwriter里有方法是阻塞的
小爪001 2013-10-16
  • 打赏
  • 举报
回复
引用 3 楼 sunbo624 的回复:
write换成print 输出一次再flush()一下 是不是缓冲区满了
确实是缓存区满了,但是当缓存够了1024b时代码就停止运行了,flush什么的不起作用
sunbo624 2013-10-15
  • 打赏
  • 举报
回复
write换成print 输出一次再flush()一下 是不是缓冲区满了
小爪001 2013-10-15
  • 打赏
  • 举报
回复
引用 1 楼 stubble 的回复:
很明显有异常了
后台没有抛出来.
异常异长 2013-10-15
  • 打赏
  • 举报
回复
很明显有异常了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧