HTTP method POST is not supported by this URL解决

今天写了个非常简单的setvlet想测试些东西,写好了后用postman请求报错,报错内容如下

{
    "timestamp": 1504170113588,
    "status": 405,
    "error": "Method Not Allowed",
    "message": "HTTP method POST is not supported by this URL",
    "path": "/vincent/aaa"
}

但是我的控制台还是答应了我的请求内容,百思不得其解,最后发现是因为没有把调用父类的post方法删掉

我的代码如下

@WebServlet(urlPatterns = "/aaa")
public class MyServlet extends HttpServlet{

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException {

        super.doGet(request, resp);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException {
        InputStream inputStream = request.getInputStream();
        BufferedReader in=new BufferedReader(new InputStreamReader(request.getInputStream()));
        StringBuilder sb = new StringBuilder();
        String xmlHead = "";
        String xmlContent="";
        String line = null;
        while ((line = in.readLine()) != null) {
            sb.append(line);
        }
        System.out.println(sb);
        super.doPost(request, resp);
    }
}
 super.doPost(request, resp);的源码如下
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(405, msg);
        } else {
            resp.sendError(400, msg);
        }

    }

有没有发现,无论你的请求怎样,他都报错的。

posted on 2017-08-31 17:11  幽人月  阅读(7569)  评论(0编辑  收藏  举报