In meiner Webanwendung, die in der Google App Engine gehostet wird, werden beim Aufruf eines Servlets durch Eingabe der URL in einem Browser zwei Aufrufe an das Servlet ausgeführt. Wenn ich jedoch das Servlet durch Klicken auf einen Anker anrufe, wird nur ein Anruf getätigt.Servlet Called Twice
Was ist die Ursache und wie kann ich dieses Verhalten korrigieren?
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>
Servlets:
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");
}
}
Update:
Das Problem scheint von Google Chrome macht Anfragen auf eigene verursacht werden. Immer wenn ich eine URL eintippe, wird eine Anfrage gemacht, bevor ich tatsächlich Enter drücke, gefolgt von der eigentlichen Anfrage. Gibt es eine Möglichkeit, diese Art von Anfragen an meine Anwendung zu verbieten?
Öffnen Sie die Browser-Entwicklungstools, klicken Sie auf das Netzwerkfenster und sehen Sie, was passiert. –
Das Netzwerkfenster zeigt nur das einmal aufgerufene Servlet, aber die Protokollierung zeigt, dass es zu zwei Aufrufen kam. – Sven
wo ist dein html/jsp code auch das komplette web.xml? – developer