是否异步处理对HttpServlet的http请求

时间:2011-09-01 11:54:19

标签: java multithreading servlets

我被告知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();
}

现在,当我同时发出两个请求时,第二个请求等待第一个请求结束。 如何在这种情况下实现异步行为?

更新:请求是异步处理的,只是我的请求不是异步生成的。

1 个答案:

答案 0 :(得分:3)

通过实现,每个servlet请求都在不同的线程中运行。所以这是一种异步行为。