求大神,,response.write页面下载,弹出对话框点击取消后java后续代码不执行 10
如题,我后台字符串数据用response.write写出到页面下载,弹出对话框点击取消后,后台java代码不继续执行,怎么办,据我所查下载时候虚拟机另起了一个线程,点击下...
如题,我后台字符串数据用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;
} 展开
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;
} 展开
展开全部
和线程有什么关系??
for (int j = 0; j <500 ; j++) {
response.getWriter().write("aaaaa");//线程可能在这里停止,停止位置看我输出的数据大小
}
这段代码应该改进一下,你在循环中应该拼写字符串,用StringBuffer,然后用response.getWriter().write()一次就给输出出来,你这样效率低下啊。
理论上应该是能走到后面的啊,为什么会在中间停止啊?你先按我说的改。
for (int j = 0; j <500 ; j++) {
response.getWriter().write("aaaaa");//线程可能在这里停止,停止位置看我输出的数据大小
}
这段代码应该改进一下,你在循环中应该拼写字符串,用StringBuffer,然后用response.getWriter().write()一次就给输出出来,你这样效率低下啊。
理论上应该是能走到后面的啊,为什么会在中间停止啊?你先按我说的改。
追问
这个是我简化后的代码,不是我项目里就这样的,理论上我也觉得能走通,可是走的确实到一个位置后就停下了不走了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询