一、遇到问题
punlic void go()
{
if(a)request.getRequestDispatcher("/a.jsp").forward(request, response);
if (b)request.getRequestDispatcher("/b.jsp").forward(request, response);
}
执行该方法会报Cannot forward after response has been committed
二、查找原因
这两次分发有可能同时执行,执行a分发是正常,但b分发就不能够正常再次转向了。
三、解决办法
punlic void go()
{
if(a)
{
request.getRequestDispatcher("/a.jsp").forward(request, response);
return;
}
if (b)request.getRequestDispatcher("/b.jsp").forward(request, response);
}
本文介绍了一个关于Servlet转发的问题及解决方案。当在一个方法中尝试进行多次转发时,第二次转发可能会失败并抛出Cannotforwardafterresponsehasbeencommitted异常。文章详细解释了这一现象的原因,并提供了一种通过提前返回来避免二次转发的解决方法。
1343

被折叠的 条评论
为什么被折叠?



