Servlet称为两次

时间:2016-10-30 21:54:43

标签: java google-app-engine servlets

在我的Web应用程序(托管在Google App Engine上)上,每当我通过在浏览器上输入URL来调用Servlet时,都会导致对Servlet进行两次调用。但是,如果我通过单击锚点来调用Servlet,则只进行一次调用。

原因是什么以及如何纠正此行为?

Web.xml中

  <servlet>
      <servlet-name>ServletOne</servlet-name>
      <servlet-class>com.test.nz.MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>ServletOne</servlet-name>
      <url-pattern>/myservlet</url-pattern>
  </servlet-mapping>

的Servlet

public class MyServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException 
    {
        final Logger log = Logger.getLogger(MyServlet.class.getName());
        log.info("Here in MyServlet");
    }
}

更新

此问题似乎是由Google Chrome自行提出请求引起的。每当我输入URL时,在我实际按Enter之前发出请求,然后是实际请求。有没有办法不允许这些类型的请求到我的申请?

1 个答案:

答案 0 :(得分:0)

我有同样的问题,只有在Chrome中,结果是servlet被映射到/并且还接受了对favicon.ico的请求。对我来说,这是第二个请求的来源。