首页 > 其他 > 详细

Cannot forward after response has been committed问题分析及解决

时间:2015-05-13 02:13:23      阅读:192      评论:0      收藏:0      [点我收藏+]

问题描述:

? ? ? ? ?java.lang.IllegalStateException:Cannot?forward?after?response?has?been?committed

? ?大致意思,无法在response提交后完成跳转。

错误代码:

?

servlet.getServletContext().getRequestDispatcher("/DateUpdatePage.do").forward(request, response); 

?错误原因:

?

这个是错误是由于response多次提交或者是由于有页面显示后仍然含请求转向产生的,就是说程序在return之前就已经执行了跳转或者执行过response,之后遇到return的话,程序想再次执行跳转,也就是重定向,这时功能也许会实现了,但是控制台会报错,所以控制好跳转是很重要的。

解决办法:

return?null

方式一:修改后代码:

?

servlet.getServletContext().getRequestDispatcher("/DateUpdatePage.do").forward(request, response); 
return null;

??方式二:

RequestDispatcher rd = request.getRequestDispatcher("/error.jsp");  
try {  
      rd.forward(request, response);  
}catch(Exception e){}  

?改成了如下:

RequestDispatcher rd = request.getRequestDispatcher("/error.jsp");  
try {  
       rd.forward(request, response);  
            return;  
     }catch(Exception e){} 

?这段代码是在一个方法里,并且在调用这个方法的的方法里面,就在该方法的后也加了一个return;

?

?

?

?

Cannot forward after response has been committed问题分析及解决

原文:http://hyz301.iteye.com/blog/2210489

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!