0
在我的Web應用程序上託管Google App Engine時,無論何時通過在瀏覽器中輸入URL調用Servlet,都會導致對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");
}
}
更新:
這個問題似乎是由谷歌瀏覽器使得它自身的請求引起的。每當我輸入一個網址時,在我實際按下輸入之前發出一個請求,然後是實際的請求。有沒有辦法禁止這些類型的請求到我的應用程序?
打開瀏覽器開發工具,點擊網絡面板,看看會發生什麼。 –
網絡面板只顯示一次被調用的Servlet,但日誌顯示它導致兩個調用。 – Sven
你的html/jsp代碼在哪裏也添加完整的web.xml? – developer