今天写了个非常简单的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); } }
有没有发现,无论你的请求怎样,他都报错的。
时间: 2024-10-10 05:25:43