JavaWeb的错误总结
java.lang.IllegalStateException: 提交响应后无法调用sendRedirect()。
该错误出现的原因是,在一段代码中,重复的多次执行sendDirect()所导致的。
解决办法:找出代码块中,重复执行的位置进行修改。
见错误代码
if (res == -1 ){
response.sendRedirect(request.getContextPath() + "/BalanceNotEnough.jsp");
}if (res == 2 ){
response.sendRedirect(request.getContextPath() + "/TransferSuccess.jsp");
}else{
response.sendRedirect(request.getContextPath() + "/TransferErro.jsp");
}
代码设想执行的效果为:判断res的值,通过res的值,来重定向到不同的页面,但是 response.sendRedirect()的执行并不会导致程序的执行结束,在res的结果为-1时,程序还会执行剩下的代码,在else{}代码块中,重复执行了sendDirect()。
更改代码
if (res == -1 ){
response.sendRedirect(request.getContextPath() + "/BalanceNotEnough.jsp");
}else if (res == 2 ){
response.sendRedirect(request.getContextPath() + "/TransferSuccess.jsp");
}else{
response.sendRedirect(request.getContextPath() + "/TransferErro.jsp");
}
更多详细的错误分析请查看:
servlets – java.lang.IllegalStateException:响应提交后不能(转发| sendRedirect )
how to fix Cannot call sendRedirect() after the response has been committed? [duplicate]
版权声明:本文为Ensemble_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。