gpt4 book ai didi

java - 为什么我的简单 Jetty 服务器一次只处理 1 个请求?

转载 作者:可可西里 更新时间:2023-11-01 16:32:10 26 4
gpt4 key购买 nike

我是第一次使用 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

为什么他们的请求没有被并行处理?

最佳答案

似乎人们时常遇到这种情况(例如参见 here)。

但是作为this很好地解释了 - jetty 是为并行服务用户而构建的。

所以答案是:这不是jetty问题——而是用户错误;例如,通过从单个浏览器运行请求(并且该浏览器在内部序列化请求)。

关于java - 为什么我的简单 Jetty 服务器一次只处理 1 个请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45190458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com