2015-12-16 18 views
-2

我正在使用Apache Tomcat使用Java servlet。Java servlet,在排队之前收到每个请求后进行响应

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

所以服务器给了我一个请求 - >在我开始排队之前,我会回复'good send another'或'bad send another'。

任何帮助将不胜感激!

编辑

对不起这是可怕的书面:(

什么我所要求的是一个头发送给客户端(在这个例子中它向我发送大量请求的服务器)的方式我的程序在做什么: 我的servlet从一个客户端获取了大量的GET请求(超过100,000)我使用的是tomcat然后放入一个线程池中,然后分配给一个工作线程处理它并将其放入一个数据中基础。

我被告知要做的是发回一个请求回该服务器说'收到'。我想我可以使用标题响应,但我没有该客户端的URL(客户端可以更改为不同的广告系列)。所以想知道发送该回复的最佳方式是什么。

在做了一些更多的研究之后,我想我正在寻找的是ServletOutputStream。

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

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

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

+0

请说明您的具体问题或添加额外的细节,以确切地突出你所需要的。正如目前所写,很难确切地说出你在问什么。请参阅[如何提问](http://stackoverflow.com/help/how-to-ask)页面以获得澄清此问题的帮助。 – jurgemaister

+0

至少这些观点对我来说不太清楚:服务器是否提供了你的请求?不是来自客户的请求吗? “逻辑”是什么意思?你在说什么排队? – Mifeet

回答

1

简单的答案是“确定”。

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

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

相关问题