JavaWeb的错误总结 java.lang.IllegalStateException

  • Post author:
  • Post category:java




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 版权协议,转载请附上原文出处链接和本声明。