之前我通过一个java类继承GenericServlet实现了一个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("我成功了");
}
}