我正在尝试运行Jetty Server,可以让很多人连接到服务器并查看打印输出列表。我希望每个连接的人看到打印出的相同值。
例如,如果我有一个列表跟踪时间,我希望5个人能够访问我的网站(例如localhost:8080 / time)并让他们看到每个人的时间30秒,我怎么设置它?
我有什么:
我没有设置自己的连接器,因为我试图这样做是不成功的,我不知道如果这是我的问题的解决方案我是如何理解的。
任何帮助都会非常感激,如果有人有一些想法,但需要澄清我正在做的事情,我很乐意提供更多细节。
谢谢!
处理程序代码:
@Override
public void handle(String target, Request request, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException, ServletException
{
httpServletResponse.setContentType("text/html;charset=utf-8");
httpServletResponse.setStatus(HttpServletResponse.SC_OK);
request.setContextPath("/time");
request.setHandled(true);
while (true) {
synchronized(Main.list) {
while (!Main.list.isEmpty()) {
Double time = Main.list.get(0);
httpServletResponse.getWriter().println("<h1>The time now is " + time + "</h1>");
httpServletResponse.flushBuffer();
Main.list.remove(0);
}
try {
Main.list.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
因此列表对象是我每隔30秒唤醒(即通知)的Main类中定义的静态ArrayList。希望这有助于某人了解我正在谈论的内容,因为我不确定我可以在处理程序中更改...
答案 0 :(得分:0)
您如何将客户送入您的处理程序?浏览器对特定主机的连接数量有限制,可能是您看到的。
除了在处理程序中看到的通常奇怪的事情之外,处理程序代码没有任何本质上的错误