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

 今天写Servlet使用跳转:

response.sendRedirect("main.jsp");

这两种跳转方式(内跳、外跳)运行时都报错,如下:(网页上报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://my.oschina.net/u/3625028/blog/1501212

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值