Servlet 3.0 (JSR 315) 引入非同步處理。需在 @WebServlet 或 @WebFilter 設定 asyncSupported=true。核心 API:
ServletRequest.startAsync():產生非同步請求,回傳 AsyncContextAsyncContext:提供非同步操作執行上下文,含 complete() 提交回應、dispatch() 轉發給其他框架(如 JSP)AsyncListener:非同步操作完成或超時通知@WebServlet(name="CalculatorServlet", asyncSupported=true, urlPatterns={"/calc","/getVal"})
public class CalculatorServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) {
AsyncContext aCtx = req.startAsync(req, res);
// ... 非同步處理邏輯
}
}
非同步支援使持續客戶端連線(如聊天室)成為可能,Servlet 與 Ajax 搭配效率更佳。