【SpringBoot专题系列】springboot使用servlet之sync、async、sse

在这里插入图片描述

前言

最近想了解下webFlux,于是就摸索到了之前servlet编程的学习,基于现在用springboot已经成为生产必用的技术,所以就学习一下spring boot如何使用servlet,当然现在servlet已经更新到了4.0版本,今天先学习下servlet3.0

servlet 3.0 新特性

异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才结束该 Servlet 线程。在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己在不生成响应的情况下返回至容器。针对业务处理较耗时的情况,这将大大减少服务器资源的占用,并且提高并发处理速度。 总结一句话就是将request pool和 work pool分开

先学习springboot使用servlet

一、创建SyncServlet,(代码放在github上),@WebServlet(urlPatterns = “/SyncServlet”),这个路径映射

二、创建SyncFilter述,@WebFilter(urlPatterns = {"/SyncServlet"})

三、启动类上面添加@ServletComponentScan,用于扫描加载那些servlet
这是创建了一个阻塞式的servlet。

创建非阻塞式的servlet

一、创建AsyncServlet,主要是AsyncContext这个异步上下文来启动异步,切换到worker线程,我们使用的java8的CompletableFuture来启动线程

二、创建ASyncFilter,这里@WebServlet中的asyncSupported = true,否则会报错

使用Server Send Event

SSE与Servlet异步编程并无什么关系,所谓SSE,就是浏览器向服务器发送一个HTTP请求,保持长连接,服务器不断单向地向浏览器推送“信息”(message),类似WebSockt,也是H5的新特性

一、 创建SSE,这里需要设置返回类型为text/event-stream
二、在SyncFilter添加urlPatterns

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值