到目前为止,我认为通过servlet super.doPost(req, resp)
调用doPost(req, resp){}
是一种常见做法。
但这是我面临的问题 -
我有一个非常简单的servlet有一个doPost(req,resp),因为它是eclipse的自动生成方法,它有super.doPost(req, resp)
这很好,因为它调用它的父亲的doPost()但是我得到了
HTTP状态405 - 此URL不支持HTTP方法GET 每当servlet被击中时。 我经历了很多帖子和this post
一直在谈论同样的问题,建议的解决方案之一是删除super.doGet()。
我使用Post方法做了同样的工作,令我惊讶的是它工作了!!!!
我找不到合乎逻辑的理由。有人可以解释一下发生了什么吗? 为什么
405 由于调用super.doPost()而闪烁。
谢谢, SAURABH。
答案 0 :(得分:3)
HttpServlet.doPost
的默认实现返回405错误(不允许使用方法)。如果要在servlet中支持POST方法,则必须实现doPost
方法。
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);
}
}