嵌入式Jetty处理每条消息两次

时间:2011-01-26 10:02:58

标签: java http google-chrome jetty embedded-jetty

我正在尝试以最简单的方式使用Jetty。我首先从Jetty @ Eclipse文档运行演练,基本上看起来像这样:

public class Main {

    public class HelloHandler extends AbstractHandler
    {
        public void handle(String target,Request baseRequest,HttpServletRequest     request,HttpServletResponse response)
            throws IOException, ServletException
        {
            response.setContentType("text/html;charset=utf-8");
            response.setStatus(HttpServletResponse.SC_OK);
            baseRequest.setHandled(true);
            response.getWriter().println("<h1>Hello World</h1>");
        }
    }

    private void run() throws Exception
    {
        Server server = new Server(8080);
        server.setHandler(new HelloHandler());
        server.start();
        server.join();
    }

    public static void main(String[] args) throws Exception
    {
        Main m = new Main();
        m.run();
    }
}

问题是处理程序在每个请求上被调用两次。我正在使用Chrome与 http:// localhost:8080 进行模拟,如果这有任何区别的话。 Jetty嵌入了两个罐子:

  • 码头-全7.0.2.v20100331.jar
  • servlet的API-2.5.jar

我在做错了什么/在这里失踪了?

1 个答案:

答案 0 :(得分:3)

原来Chrome是“应该受到责备”。我没有收到相同的HTTP请求,除了请求/favicon.ico之外,我还收到了原始的HTTP请求。就Jetty而言,一切看起来都不错。