我使用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");
}
答案 0 :(得分:1)
我建议您使用浏览器跟踪发送的HTTP请求(如果您使用Chrome,请使用开发人员工具的网络标签)。
在我的情况下,我有同样的问题,我通过跟踪HTTP请求发现原因。也许你和我有同样的情况。我使用了Chrome JSONView Extension,当我访问返回JSON内容的URL时,发送了两次HTTP请求(浏览器URL + JSONView发送AJAX请求(content.js))
答案 1 :(得分:0)
Raghul,如果doGet被召唤两次,那么只有一个可能的结论:有2个请求即将到来。
以下是我的建议:
实现doGet并检查HttpServletRequest对象,看看两个调用中Web容器提供的对象是否有任何区别。
使用tcpmon并检查通过网络传输的数据。无需安装,您可以直接在线运行。您会在那里看到标题,并且您需要特别关注字段用户代理。机会是,两个电话都不一样。如果它完全相同,那么您的浏览器是唯一的罪魁祸首,我建议您尝试使用不同的浏览器或重新安装它。