在我的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之前发出请求,然后是实际请求。有没有办法不允许这些类型的请求到我的申请?
答案 0 :(得分:0)
我有同样的问题,只有在Chrome中,结果是servlet被映射到/并且还接受了对favicon.ico的请求。对我来说,这是第二个请求的来源。