doPost super cause - HTTP状态405

时间:2013-11-23 05:53:42

标签: servlets http-status-code-405

到目前为止,我认为通过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。

1 个答案:

答案 0 :(得分:3)

HttpServlet.doPost的默认实现返回405错误(不允许使用方法)。如果要在servlet中支持POST方法,则必须实现doPost方法。

这是code of HttpServlet.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);
    }
}