抱歉,但我没有实际的代码,但我会尝试解释:
我有一个servlet映射到以下:
/admin/*
所以,这是一个servlet:
public class AdminController extends MainController { public void doPost(HttpServletRequest request,HttpServletResponse response) { // Do stuf here } }
这是MainController:
public class MainController extends HttpServlet { @Override public void service(ServletRequest request,ServletResponse response) { String requesturi = ((HttpServletRequest)request).getRequestURI(); reqlist = Arrays.asList(requesturi.substring(requesturi.indexOf(Util.rootPath) + Util.rootPath.length()).split("/")); reqlist = reqlist.subList(1,reqlist.size()); doPost((HttpServletRequest)request,(HttpServletResponse)response); }
所以,请求传递给AdminController,没问题,但后来我重新调整了一些内容:
servlet被调用了两次!这导致了我很多错误..
有没有人对此有所了解?是因为我使用了某种遗产?
感谢你所做的一切!
解决方法
为所有请求类型调用
HttpServlet.service方法,您看到的是HEAD请求,然后是GET或POST请求.而不是实现服务只需实现doGet或doPost.通常做的是只执行一个doPost或doGet,然后从没有实现的那个调用另一个.