web项目405错误的解决方案

web项目405错误的解决方案1、问题描述今天学生在使用jsp+servlet做一个练习的时候出现了一个错误,截图如下:点击删除按钮错误描述当在用户列表点击删除按钮的时候,发

大家好,欢迎来到IT知识分享网。

1、问题描述

今天学生在使用jsp+servlet做一个练习的时候出现了一个错误,截图如下:

web项目405错误的解决方案

点击删除按钮

web项目405错误的解决方案

错误描述

当在用户列表点击删除按钮的时候,发现用户已经删除,但是报了一个405的错误。

2、问题分析

代码过程如下:

web项目405错误的解决方案

web项目405错误的解决方案

Servlet里面先进入doGet方法,然后调用doPost方法进行处理。处理完跳转到查询所有数据的Servlet查询并展示数据:

web项目405错误的解决方案

但是最后数据并没有展示出来。

查看数据库数据,已被删除,但是并没有跳转到home.jsp页面。再看错误,报的是URL不支持POST,明明我们是以get方式发送的数据,却报了一个POST不被支持的错误。

跟踪断点,发现并没有进到EmpListServlet这个类的doPost方法里,仔细观察,原来在EmpListServlet这个类的doGet方法里面,调用doPost写的super.doPost方法。

打开这个方法的源码看一下:

这个类是HttpServlet类:

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String protocol = req.getProtocol(); String msg = lStrings.getString(“http.method_post_not_supported”); if (protocol.endsWith(“1.1”)) { resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg); } else { resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg); } }

在这个方法里面,没有实现具体功能,只是根据协议号,把错误返给前端,就是我们看到的405

3、解决方案

我们在传统Servlet处理的时候,经常doGet去调用doPost,但是调用的时候要注意,调的是自己实现的方法,千万不要调到了父类没有实现的方法。

我们把super.doPost改为doPost即可。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/80649.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信