我被告知java servlet可能异步运行。但这是否意味着对单个servlet的请求是异步处理的,或者只有对不同servlet的请求是异步的。对HttpServlet的http请求是否异步处理
基本上,我在我的项目这一个servlet的:
public class DummyServlet extends HttpServlet
{
...
protected void doGet(HttpServletRequest request, HttpServletResponse response)
{
response.setContentType("text/plain; charset=utf-8");
PrintWriter writer = new PrintWriter(response.getOutputStream());
writer.write("DummyServlet invocation");
System.out.print("Invocation: " + counter);
Thread.sleep(5000);
System.out.println(" ... done.");
counter++;
writer.flush();
writer.close();
}
现在,当我提出两个同时发生的请求,第一个结束第二个等待。 在这种情况下,如何实现异步行为?
更新:请求异步处理,只是我的请求不是异步生成的。
servlet中的方法是同步的,每个单独的请求都是同步处理的。但是,容器为各个请求使用单独的线程,因此它们应该在不同的线程中同时执行。你为什么认为这两个调用是连续执行的? – fvu
'现在,当我提出两个同时请求时,第二个等待第一个结束。 '对于给定的代码它不是真实的,两者都会以不同的方式提供 –
你在输出中看到了什么? – hvgotcodes