Cannot call sendRedirect() after the response has been committed/HTTP Status 405

   今天写Servlet使用跳转:

response.sendRedirect("main.jsp");

request.getRequestDispatcher("main.jsp").forward(request, response);

这两种跳转方式(内跳、外跳)运行时都报错,如下:(网页上报HTTP Status 405错误)

java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed

    检查了一遍程序逻辑,发现应该无误,而且之前写的Servlet也从未报错,最后知道了报错原因,记录如下:

大致三种解决方法:

    (1)Servlet要重写doGet()、doPost()方法,网上说是只重写doGet方法,而不重写doPost方法的话,是会报这个错的,但是我不是这个原因;

    (2)在跳转之后要加上return这条语句,这在一些书籍上也是可以找到的,因为跳转以后,下面的代码已经完全无用,只会产生影响,所以加上return语句可以防止产生错误,我也不是这个原因。

    (3)删除重写的doGet()、doPost()这两个方法里面的super.doGet()和super.doPost()语句。因为如果使用eclipse开发,使用eclipse来自动生成重写方法的话,默认是会去调用父类的doGet()、doPost()方法的,我之前开发的时候,都把这两句删掉的,今天可能操作不当,没删掉,所以导致报错,这种原因导致报错的话,就删掉父类方法调用那两句代码就行了。
 

 

转载

https://blog.csdn.net/TheBlackbeard/article/details/53355372

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞飞翼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值