java类继承HttpServlet类实现Servlet程序出现405错误:HTTP method POST is not supported by this URL

 

 

之前我通过一个java类继承GenericServlet实现了一个Servlet程序,过程很顺利没有出现问题

手写实现一个Servlet程序

 

后来我去继承GenericServlet的子类HttpServlet实现一个Servlet程序的时候一直报405错误。

会出现以下的错误信息:

 

按照正常情况,子类比父类更加丰富,不可能出现继承父类可以实现,继承子类就会无法实现的情况。

看了HttpServlet源码后,我发现这个HttpServlet类里面有两个service()方法,而我继承了HttpServlet类后重写了这个service()方法,在这个重写的方法里通过super调用了父类的service()方法,因为父类有两个service()方法,所以找不到这个路径,报405错误

public class one extends HttpServlet {
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        super.service(req, res);
        res.getWriter().println("我成功了");
    }

}

  

我继承GenericServlet类的时候是没有super.service(req, res);这一步的,后面我把这一步删除之后就可以正常运行了。

public class one extends HttpServlet {
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        res.getWriter().println("我成功了");
    }

}

  

原文地址:https://www.cnblogs.com/lyd447113735/p/11813093.html