抱歉,我没有实际的代码,但是我将尝试解释:

我有一个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中的一个,然后从您没有实现的那一个中调用另一个。

09-04 06:03