关于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错误的一种方法,可能会对一些网友有帮助,也可能没有帮到一些网友,希望大家能够在对于问题的解决方法做以补充。如果我的方法中存在不足或者错误的,也欢迎大家能够联系我指正。
欢迎大家以任何非盈利的方式转载本文章,转载请注明作者和出处——津志伊恋