0

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

我的 URL 请求格式为

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

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

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

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

2 回答 2

1

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

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

于 2013-05-07T08:32:09.853 回答
0

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

以下是我的建议:

  1. 实现 doGet 并检查 HttpServletRequest 对象,查看 Web 容器在两次调用中提供的对象之间是否存在任何差异。

  2. 使用tcpmon并检查通过网络传输的数据。无需安装,直接在线运行即可。您将在那里看到标题,并且您要特别注意字段User-Agent。很可能,这两个电话都不一样。如果完全相同,则您的浏览器是唯一的罪魁祸首,我建议您尝试使用其他浏览器或重新安装它。

于 2013-05-07T15:13:05.573 回答