当前位置:  开发笔记 > 编程语言 > 正文

Servlet被调用两次!

如何解决《Servlet被调用两次!》经验,为你挑选了2个好方法。

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

我有一个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被调用两次!.这导致了我很多错误..

有没有人对此有所了解?是因为我使用了某种遗产?感谢你所做的一切!



1> carson..:

该HttpServlet.service方法被调用的所有请求类型和你看到的是一个HEAD请求,然后一个GET或POST请求.而不是实现服务只需实现doGet或doPost.通常做的是只执行一个doPost或doGet,然后从没有实现的那个中调用另一个.



2> 小智..:

虽然它是旧线程,但我的回答可能会帮助某人.今天我遇到了同样的问题.我的特定servlet工作正常,突然它开始两次调用doGet方法.经过调查,我发现我的chrome浏览器有html验证器扩展,它再次调用servlet,同样请求进行html验证.禁用扩展后,问题得到解决.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有