• 关于Servlet报错:405 HTTP method GET is not supported by this URL问题解决方法


    在编写一个项目的某个Servlet时候,在运行时候,报出了错误 405 HTTP method GET is not supported by this URL,在通过查询,得到大家很多解决方法,为了能总结归纳,现在都列举出来,这些都不是我的解决方法,我也没有每一种情况都测试,如果方法中有错误的请忽略:

    网友版1:出处http://weishang-java.iteye.com/blog/688133(这个可能不是原创的地址,但是是我看到的,如果影响到原作者,请与我联系修改或者删除)

    问题产生原因:

    1,继承自HttpServlet的Servlet没有重写对于请求和响应的处理方法:doGet或doPost等方法;默认调

    用父类的doGet或doPost等方法;

    2,父类HttpServlet的doGet或doPost等方法覆盖了你重写的doGet或doPost等方法;

    不管是1或2,父类HttpServlet的doGet或doPost等方法的默认实现是返回状态代码为405的HTTP错误表示

    对于指定资源的请求方法不被允许。

    问题解决方法:

    1,子类重写doGet或doPost等方法;

    2,在你扩展的Servlert中重写doGet或doPost等方法来处理请求和响应时 不要调用父类HttpServlet的

    doGet或doPost等方法,即去掉super.doGet(request, response)和super.doPost(request, response);

    网友版2:出处http://bbs.jxjyzy.com/space/viewspacepost.aspx?postid=30811(这个可能不是原创的地址,但是是我看到的,如果影响到原作者,请与我联系修改或者删除)

    问题产生原因及解决方法:

    在Servlet中接收参数要写在方法最前面。

    以上的两种方法我没有做针对性的测试,只是没有解决了我的问题,如果其中有错误或者没有解决了您的问题,可以继续往下看,试试我的解决方法,以下是我的解决方法:

    问题原因分析:

    我写的Servlet是一个判断表单的程序,当我正常通过表单提交数据的时候,这时是不会报错的,只有当我直接访问Servlet的时候,才会报出上述错误,于是我想到了我的表单是通过POST方式提交的,而且我的Servlet中是写doPost方法,而没有写doGet方法,所以,当直接访问一个页面或者一个地址默认是通过GET方式访问的,所以默认调用的是doGet方法,而我的Servlet中没有doGet方法,才导致了上述错误的产生。

    问题解决方法:

    在Servlet中要有与提交方式对应的方法,即doPost或者doGet方法,直接访问Servlet而且没有声明访问类型,那么默认的是GET方式,所以要有doGet方法,如果以POST方式提交表单或者其他POST方式访问Servlet那么就要有doPost方法,如果上述两种情况都有可能出现,那么doGet和doPost就都必须存在,否则就会报出错误。

    以上是我对于解决405 HTTP method GET is not supported by this URL错误的一种方法,可能会对一些网友有帮助,也可能没有帮到一些网友,希望大家能够在对于问题的解决方法做以补充。如果我的方法中存在不足或者错误的,也欢迎大家能够联系我指正。

    欢迎大家以任何非盈利的方式转载本文章,转载请注明作者和出处——津志伊恋

  • 相关阅读:
    【Gamma】 Phylab 展示博客
    【技术博客】Postman接口测试教程
    【技术博客】利用Python将markdown文档转为html文档
    【技术博客】使用PhpStorm和Xdebug实现Laravel工程的远程开发及调试
    【技术博客】Laravel5.1文件上传单元测试
    【技术博客】移动端的点击事件与Sticky Hover问题
    【技术博客】 Laravel 5.1单元测试(PHPUnit)入门
    Scrum Meeting博客目录
    团队事后分析
    Gamma阶段测试报告
  • 原文地址:https://www.cnblogs.com/kenticny/p/2533050.html
Copyright © 2020-2023  润新知