前景提要
HDC调试需求开发(15万预算),能者速来!>>> package com.servlet; import java.io.PrintWriter; import java.util.Date; import javax.servlet.AsyncContext; /** * * @author Administrator */ public class ProcessTask implements Runnable{ private AsyncContext ctx = null; public ProcessTask(AsyncContext ctx) { this.ctx = ctx; } @Override public void run() { try { //等待十秒钟,以模拟业务方法的执行 Thread.sleep(1000); PrintWriter out = ctx.getResponse().getWriter(); out.println("业务处理完毕的时间:" + new Date() + ".<br/>"); out.flush(); ctx.complete(); } catch (Exception e) { } } } /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.AsyncContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.annotation.WebServlet; /** * * @author Administrator */ @WebServlet(asyncSupported=true,urlPatterns={"/async"} ,name="Async Server") public class AsyncDemoServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { process(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { process(req, resp); } protected void process(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException { PrintWriter out = null; try { resp.setContentType("text/html;charset=UTF-8"); out = resp.getWriter(); out.println("进入Servlet的时间:" + new Date() + ".<br/>"); out.flush(); //在子线程中执行业务调用,并由其负责输出响应,主线程退出 boolean asyncSupported = req.isAsyncStarted(); out.println("是否支持异步:" + asyncSupported + ".<br/>"); out.flush(); if(asyncSupported){ AsyncContext ctx = req.startAsync(); ctx.start(new ProcessTask(ctx)); } out.println("结束Servlet的时间:" + new Date() + ".<br/>"); out.flush(); } catch (IOException ex) { } finally { out.close(); } } } 其中一句 boolean asyncSupported = req.isAsyncStarted(); 返回false。 其表示不支持 异步 吗? 测试容器为 Apache Tomcat/7.0.21, GlassFish Server 3.1.1