2011-07-21 29 views
5

estoy usando un servidor embarcadero incrustado dentro de la aplicación java. Pero el método doGet() se llama dos veces. También se llama como resultado de esta condición (method.equals (METHOD_GET)) dentro del método de servicio de la clase httpservlet.doGet llamado dos veces embarcadero servidor

Intenté hacer una solicitud utilizando tanto el cromo como el explorador, pero obtuve el mismo resultado.

puede alguien ver el motivo de la doGet se llama dos veces ..

public class HelloServlet extends HttpServlet{ 
    private String greeting="Hello World"; 
    public HelloServlet(){} 
    public HelloServlet(String greeting) 
    { 
     this.greeting=greeting; 
     System.out.println("started the server" + greeting); 
    } 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     response.setContentType("text/html"); 
     response.setStatus(HttpServletResponse.SC_OK); 
     response.getWriter().println("<h1>"+greeting+"</h1>"); 
     response.getWriter().println("session=" + request.getSession(true).getId()); 
     count = count+1; 
     System.out.println(count); 
     response.getWriter().println("count=" + count); 
     response.flushBuffer(); 
    } 
} 

public class OneServletContext{ 
public static void main(String[] args) throws Exception 
{ 
    Server server = new Server(8080); 

    ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); 
    context.setContextPath("/"); 
    server.setHandler(context); 
    System.out.println("about to start the servlets"); 
    context.addServlet(new ServletHolder(new HelloServlet()),"/*"); 
    context.addServlet(new ServletHolder(new HelloServlet("Buongiorno Mondo")),"/it/*"); 
    context.addServlet(new ServletHolder(new HelloServlet("Bonjour le Monde")),"/fr/*"); 

    server.start(); 
    System.out.println("started the servlets"); 
    server.join(); 
} 
} 
+0

Votando porque he tenido este problema al usar Maven Jetty Pluggin movido a Tomcat y estaba todo bien. Y agregando favourte. – Shahzeb

Respuesta

7

Cuando se solicita una página con un navegador, sino que también solicita un icono. Por ejemplo, una solicitud al http://foo.com también solicitaría http://foo.com/favicon.ico. Eso es lo que coloca el pequeño ícono en la barra de direcciones para ayudarlo a identificar sitios. También es la fuente de su segunda solicitud al servlet. Intente agregar esta línea a su servlet:

System.out.println("request URI=" + request.getRequestURI()); 
Cuestiones relacionadas