前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >报错405:HTTP method GET is not supported by this URL

报错405:HTTP method GET is not supported by this URL

作者头像
wsuo
发布2020-07-30 18:45:12
3.9K0
发布2020-07-30 18:45:12
举报
文章被收录于专栏:技术进阶之路技术进阶之路

405响应码

首先要知道 405 响应码的作用是什么,它的意思就会说请求的方法不匹配,一般是因为本来是 POST 提交的请求,你使用了 GET 方法造成的,也可能是这个请求方法根本没有是你胡编乱造出来的。

提示信息

提示信息说不支持 GET 方法,我创建了一个类继承自 HttpServlet 类,并且重写了 service 方法,但是我又加了一个 super.service() 方法,这就导致出错了,下面解释原因。

因为请求过来之后会先到 service 方法,如果我们没有重写该方法,那么就会直接到 HttpServletservice 方法,它的源码如下:

也很好懂,就是根据请求的方法去调用对应的 doGet 和其他的方法。

doGet 的全部代码如下:

可以看到很简单,直接返回一个 method_get_not_supporteddoPost 方法和这个一模一样,所以这就是为什么我们一般情况下都要重写 doGetdoPost 方法的原因。

因为如果我们不重写,他就会直接返回 405 错误码。

但是到这一步也有一个前提就是必须能够到达 HttpServletservice 方法,如果我们重写了该方法,就不会到达这里了,而是执行我们重写的方法,所以我们可以直接重写 service 方法,将业务逻辑放进去,这样就不会到父类中的 service 方法了。

我出现错误的原因就是因为我重写了方法,但是又加了一个 super.service() ,这样他还是会去执行父类的方法,还是会执行那个 doGet 方法,然后返回 405 状态码。

解决办法就是去掉 super.service()

或者干脆还是使用老办法,不重写 service 方法了,还是重写 doGetdoPost 方法。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 405响应码
  • 提示信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档