Java servlet,在排队前收到每个请求后进行响应

时间:2015-12-16 13:05:06

标签: java tomcat servlets

我正在使用Apache tomcat使用Java servlet。

我已经配置了一个线程池并正在处理每个请求。 我的页面同时接收了许多GET请求,我想知道在任何逻辑发生之前,每次获取请求后是否可以响应服务器?

所以服务器给我一个请求 - >我回答“好”发送另一个'或者“坏”发送另一个'在我开始排队之前。

非常感谢任何帮助!

编辑

抱歉,写得非常糟糕:(

我要求的是一种向客户端发送标头的方法(在这种情况下,它是一个向我发送大量请求的服务器)。根据我发送的信息,响应只是200或错误。

我的计划正在做什么: 我的servlet从一个客户端发送了大量的GET请求。 (超过100,000)我使用tomcat排队并放入线程池。然后将其分配给工作线程,该工作线程处理它并将其放入数据库。

我被告知要做的是将请求发回给该服务器说“好了”#39;我想我可以使用标题响应,但我没有该客户端的URL(并且客户端可以针对不同的广告系列进行更改)。所以想知道发送该响应的最佳方式是什么。

在做了一些研究后,我认为我正在寻找的是ServletOutputStream。

response.setContentType("text/html");
    ServletOutputStream output = response.getOutputStream();

    output.flush();
    output.close();

使用servlet输出流在哪里设置<head><body>标签?并在之后插入标题响应。

1 个答案:

答案 0 :(得分:1)

简单的答案是“确定”。

如果这些是从网页的网页获取请求,请包含刷新计时器并发送回一些令牌,这些令牌可用于识别第一次请求和我先前请求的请求之间的差异。你完成了请求。在这种情况下,可以通过元刷新标记设置刷新计时器。

如果获取请求是REST API的一部分,那么您可以在协议中定义“得到它并且我正在工作”。例如,返回202以指示“得到但未完成”并返回200以指示“完成”。与html页面一样,考虑使用标识待处理请求的202发回一些令牌。