2
我第一次使用Jetty。爲什麼我的簡單Jetty服務器一次只處理一個請求?
我的服務器設置:
server = new Server(port);
ContextHandler testContext = new ContextHandler();
testContext.setContextPath("/test");
testContext.setHandler(new TestServlet());
ContextHandlerCollection contexts = new ContextHandlerCollection();
contexts.setHandlers(new Handler[]{ testContext});
HandlerCollection handlers = new HandlerCollection();
handlers.setHandlers(new Handler[]{ contexts, new DefaultHandler() });
server.setHandler(handlers);
server.setStopAtShutdown(true);
server.start();
測試代碼:
public class TestServlet extends AbstractHandler
{
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
System.out.println("a");
try {
Thread.sleep(2500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("b");
try {
Thread.sleep(2500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("c");
try {
Thread.sleep(2500);
} catch (InterruptedException e) {
e.printStackTrace();
}
baseRequest.setHandled(true);
}
}
如果我訪問在兩個不同的選項卡localhost/test
,第二個要求等待,直到第一個結束,所以我的日誌是這樣的:
a
b
c
a
b
c
爲什麼他們的請求沒有並行處理?
@GhostCat希望正確,試圖同時在2個瀏覽器上運行,謝謝 –
是的,它確實,謝謝 –
兄弟不是沒有問題,謝謝你 –