首页天道酬勤,

,

张世龙 05-12 14:58 88次浏览

错误显示:

http status 405-httpmethodgetisnotsupportedbythisurl

类型状态报告

消息传递策略消息传递策略

描述性pecifiedhttpmethodisnotallowedfortherequestedresource。

Apache Tomcat/8.0.33

可能的意思是这个请求的方法是不允许的。

让我们看看servlet的doGet (方法。

@ overrideprotectedvoiddoget (httpservletrequestrequest,http servlet响应) throws ServletException,io exception stion printwriter out=response.get writer (; out.println(H1Hellodoget/H1 ); 你可以看到里面有:

super.doget (请求,响应); 此代码意味着调用了父类的doGet ) )方法。 用快捷键生成重写方法的代码有这样一个词。 届时,您将看到在重写方法时忘记关掉这个词,并在后台输出

说明重写方法中的代码已执行,问题应该在super.doGet ()上。 注释掉这句话后,您将不再报告405个错误,并看到页面可以输出正常显示的内容。

让我们看看http servlet的doGet (方法

protectedvoiddoget (httpservletrequestreq,HttpServletResponse resp ) throws ServletException,io exception {字符串协议=if(protocol.endswith(1.1 ) ) resp.senderror ) http servlet response.sc _ method _ not _ allowed,msg ); } else { resp.send error (http servlet response.sc _ bad _ request,msg ); }我知道这种方法无论如何都会返回http的错误代码,但我的if条件为ture,所以返回了405个错误代码

对于不同的错误代码,sc _ method _ not _ allowed sc _ bad _ request这两个代码分别为405和400

因此,在创建servlet时,将重写其doGet (和doPost )方法。 否则,在运行父类的两个代码的最后一页时将报告错误。

您可以从名为HttpServletResponse的接口查看http状态代码的含义。 以下总结了各状态代码的含义:

100:客户端可以继续

101:服务器正在根据升级标头交换协议

2XX的东西都表示正常

200:要求正常

201:请求成功,在服务器上创建了新资源

202:请求已收到处理,但未完成

203:服务器成功处理了请求,但返回的实体的标头元信息是来自本地或第三方的副本,而不是原始服务器上有效的决策集

204:表示请求成功,但没有返回新信息

205:服务成功处理了请求,没有返回任何内容。 但是,与204响应不同,返回此状态代码的响应要求请求者重置文档视图。 此响应主要用于在接受用户输入后立即重置表单,以便用户可以轻松开始其他输入。

206:服务器成功处理了部分GET请求

3XX表示重定向

300:请求的资源提供了各种反馈信息,每种信息都有自己的地址和基于浏览器的协商信息

301:请求的资源已永久移动到新位置。 今后,对该资源的引用必须使用此响应返回的多个URI之一

302:请求的资源当前正在临时通过不同的URI响应请求

303:可以在另一个URI中找到对当前请求的响应,并且客户端必须以GET方式访问其资源

304:客户端发送有条件的GET请求,如果该请求被允许,则显示文档内容(

求的条件)并没有改变,则服务器应当返回这个状态码
305:被请求的资源必须通过指定的代理才能被访问
307:请求的资源现在临时从不同的URI 响应请求

4XX表示客户端错误
400:表示客户发送的请求在语法上不正确
401:表示请求需要HTTP身份验证
402:该状态码是为了将来可能的需求而预留的
403:表示服务器理解请求,但拒绝实现它
404:请求失败,请求所希望得到的资源未被在服务器上发现,一般出现这种情况都是因为url链接有问题,如不是正确的url链接,或者url链接出现了乱码
405:请求行中指定的请求方法不能被用于请求相应的资源
406:请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体
407:与401响应类似,只不过客户端必须在代理服务器上进行身份验证
408:请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改
409:由于和被请求的资源的当前状态之间存在冲突,请求无法完成
410:被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址
411:服务器拒绝在没有定义 Content-Length 头的情况下接受请求
412:服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个
413:服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围
414:请求的URI 长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务
415:对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝
416:如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码
417:在请求头 Expect 中指定的预期内容无法被服务器满足,或者这个服务器是一个代理服务器,它有明显的证据证明在当前路由的下一个节点上,Expect 的内容无法被满足

5XX表示服务器错误
501:服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求
502:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应
503:由于临时的服务器维护或者过载,服务器当前无法处理请求,也就是服务器出错了
504:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。注意:某些代理服务器在DNS查询超时时会返回400或者500错误
505:服务器不支持,或者拒绝支持在请求中使用的 HTTP 版本。这暗示着服务器不能或不愿使用与客户端相同的版本。响应中应当包含一个描述了为何版本不被支持以及服务器支持哪些协议的实体

对于具体出现某些错误状态码应该怎样解决,以后每遇到其中一种再详细说。

404错误代码,spring boot实战