我在form表单中设置了method="post",用于提交注册信息[提交信息为空时,调用了post,显示注册信息错误的提示;信息不为空时,报405错误];在action指向的servlet中复写了doPost,没有复写doGet;浏览器老是报405 HTTP method GET is not supported by this URL 错误。
求解
这样,servlet里的doGet和doPost方法都留着。然后其中一个方法(如doPost)写具体处理请求,另一个方法(doGet)则调用该方法(doPost),如:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//具体的处理
}
问题解决了一半。不再是post的问题。又出新问题了,关于jstl的。。。
总感觉这个方法很折中,如果有其他方法,请赐教。
如果不复写doGet()是否是就搞不定啊?
jstl这个跟get,post方法提交就没关系了。可能是你jstl的jar包冲突了吧。。jstl的jar包冲突问题比较多,而且兼容问题也比较常见。解决起来是有点繁琐。
本回答被提问者和网友采纳自动生成的,不会错的;doGet与doPost在父类里均不是抽象方法,是否复写是可选择的。这不是实质。
追答有时候你只重写了一个方法,另外一个方法则需要写调用你重写的方法