博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
59、servlet3.0-异步请求
阅读量:5111 次
发布时间:2019-06-13

本文共 1522 字,大约阅读时间需要 5 分钟。

59、servlet3.0-异步请求

59.1 开启servlet异步请求步骤

  1. 支持异步处理 asyncSupported=true
  2. 开启异步模式 req.startAsync();
  3. 业务逻辑进行异步处理;开始异步处理 asyncContext.start()
  4. 获取响应 asyncContext.getResponse()

59.2 新建异步servlet处理类

@WebServlet(value = "/async", asyncSupported = true)public class HelloAsyncServlet extends HttpServlet {    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        AsyncContext asyncContext = req.startAsync();        System.out.println("主线程开始:" + Thread.currentThread() + "start..." + System.currentTimeMillis());        asyncContext.start(() -> {            try {                System.out.println("子线程开始:" + Thread.currentThread() + "start..." + System.currentTimeMillis());                sayHello();                asyncContext.complete();                ServletResponse response = asyncContext.getResponse();                response.getWriter().write("异步执行完成");                System.out.println("子线程结束:" + Thread.currentThread() + "end..." + System.currentTimeMillis());            } catch (InterruptedException | IOException e) {                e.printStackTrace();            }        });        System.out.println("主线程结束:" + Thread.currentThread() + "end..." + System.currentTimeMillis());    }    public void sayHello() throws InterruptedException {        System.out.println("主线程运行:" + Thread.currentThread() + "processing..." + System.currentTimeMillis());        Thread.sleep(3000);    }}

59.3 测试用例

1221855-20181219113557884-1024827267.png

转载于:https://www.cnblogs.com/Grand-Jon/p/10089377.html

你可能感兴趣的文章
一些方便系统诊断的bash函数
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
css3之transform-origin
查看>>
[转]JavaScript快速检测浏览器对CSS3特性的支持
查看>>
Master选举原理
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
小别离
查看>>
微信小程序-发起 HTTPS 请求
查看>>
WPF动画设置1(转)
查看>>
基于node/mongo的App Docker化测试环境搭建
查看>>
秒杀9种排序算法(JavaScript版)
查看>>
struts.convention.classes.reload配置为true,tomcat启动报错
查看>>
MySQL的并行复制多线程复制MTS(Multi-Threaded Slaves)
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
PyQt5--EventSender
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>
Java 多态 虚方法
查看>>
Unity之fragment shader中如何获得视口空间中的坐标
查看>>
万能的SQLHelper帮助类
查看>>
tmux的简单快捷键
查看>>