使用Jetty服务器会导致在我的servlet中调用doGet()方法两次

时间:2012-08-23 11:15:37

标签: servlets jetty

我使用Jetty服务器使用Eclipse插件在我的本地主机上运行。

我的网址请求采用

格式
http://localhost:8080/TestServer/Project/?Action=5

当我调用此方法时,我的doGet方法在servlet中调用了两次。我没有实施doPost方法或Service方法。我只是使用它,但对于单个HTTP请求,它调用servlet的doGet方法两次运行。

为什么单个网址会导致运行两次?

protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
    Print("In doGet method");
}

2 个答案:

答案 0 :(得分:1)

我建议您使用浏览器跟踪发送的HTTP请求(如果您使用Chrome,请使用开发人员工具的网络标签)。

在我的情况下,我有同样的问题,我通过跟踪HTTP请求发现原因。也许你和我有同样的情况。我使用了Chrome JSONView Extension,当我访问返回JSON内容的URL时,发送了两次HTTP请求(浏览器URL + JSONView发送AJAX请求(content.js))

答案 1 :(得分:0)

Raghul,如果doGet被召唤两次,那么只有一个可能的结论:有2个请求即将到来。

以下是我的建议:

  1. 实现doGet并检查HttpServletRequest对象,看看两个调用中Web容器提供的对象是否有任何区别。

  2. 使用tcpmon并检查通过网络传输的数据。无需安装,您可以直接在线运行。您会在那里看到标题,并且您需要特别关注字段用户代理。机会是,两个电话都不一样。如果它完全相同,那么您的浏览器是唯一的罪魁祸首,我建议您尝试使用不同的浏览器或重新安装它。