2016-10-30 4 views
0

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?

+0

Öffnen Sie die Browser-Entwicklungstools, klicken Sie auf das Netzwerkfenster und sehen Sie, was passiert. –

+0

Das Netzwerkfenster zeigt nur das einmal aufgerufene Servlet, aber die Protokollierung zeigt, dass es zu zwei Aufrufen kam. – Sven

+0

wo ist dein html/jsp code auch das komplette web.xml? – developer

Antwort

0

Ich hatte das gleiche Problem, nur in Chrome, stellt sich heraus, das Servlet wurde zugeordnet und akzeptiert auch Anfragen für favicon.ico. Für mich ist dies die Quelle der zweiten Anfrage.

Verwandte Themen