我被告知java servlet可以异步运行。但这是否意味着对单个servlet的请求是异步处理的,或者只是对不同servlet的请求是异步的。
基本上,我的项目中有一个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();
}
现在,当我同时发出两个请求时,第二个请求等待第一个请求结束。 如何在这种情况下实现异步行为?
更新:请求是异步处理的,只是我的请求不是异步生成的。
答案 0 :(得分:3)
通过实现,每个servlet请求都在不同的线程中运行。所以这是一种异步行为。