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();
}
}
}