手记

Servlet中的异步处理操作核心思想

Servlet的异步处理数据操作:
通过异步处理,可以使在不同线程内传递Request、Response等Web对象;
如下所示:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    System.out.println("Servlet执行开始时间:"+new Date());
    **AsyncContext context =  request.startAsync();**
    new Thread(new Executor(context)).start();
    System.out.println("Servlet执行结束时间:"+new Date());
}

public class Executor implements Runnable{
    **private AsyncContext context;
    public Executor(AsyncContext context ) {
        this.context = context;
    }**
    @Override
    public void run() {
        //执行相关复杂业务
        try {
            Thread.sleep(1000*10);
                **context.getRequest();
                context.getResponse();**
            System.out.println("业务执行完成时间:"+new Date());
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

}
2人推荐
随时随地看视频
慕课网APP