HTTP Status 405 - HTTP method POST is not supported by this URL

前端 未结 2 1464
终归单人心
终归单人心 2021-01-03 08:06

I am getting the error HTTP Status 405 - HTTP method POST is not supported by this URL when I use the following code(below) ... the line causing the trouble (ap

相关标签:
2条回答
  • 2021-01-03 08:43

    Add a doPost() to your EditObject class:

     @SuppressWarnings("serial")
    public class EditObject extends HttpServlet{
    
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
          process(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
          process(request, response);
        }
    
    
        public void process(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {    
            int objId = Integer.parseInt(request.getParameter("id"));
            dispPage(objId, request, response);
        }
    
        private void dispPage(int objId, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{        
    
    // ... lots of code in here
                getServletContext().getRequestDispatcher("/jsp/objectPageEdit.jsp").forward(request, response);
    
        }
    }
    
    0 讨论(0)
  • 2021-01-03 08:56

    (sorry about the wrong answer I posted before, I deleted it).


    Apparently the URL /EditObject is mapped on another servlet which doesn't have doPost() method overriden. It would be called on RequestDispatcher#forward() as well because the method of currently running HTTP request is POST. The default HttpServlet#doPost() implementation will return HTTP 405. If your actual intent is to fire a GET request on it so that the doGet() method will be invoked, then you should rather use HttpServletResponse#sendRedirect() instead.

    response.sendRedirect("/EditObject?id="+objId);
    
    0 讨论(0)
提交回复
热议问题