我被告知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