Servlet3.0、4.0的新特性

概述3.0新特性:

  1. 异步处理的支持:支持异步处理之后Servlet线程将不会因为等待业务处理完成而产生阻塞。支持异步处理之后,Servlet线程可以将耗时的操作委派给另一个线程进行操作,自己则在不生成响应的情况下返回容器。当面对业务处理耗时较长的情况时,这将大大降低对服务器资源的占用,并提高并发处理的速度。
  2. 新增的注解支持:3.0版本增加了若干注解,用于简化Servlet、过滤器(Filter)和监听器(Listener)中对Servlet的声明,这使得web.xml部署描述文件从3.0版本开始不再是必选的了。
  3. 可插性支持:3.0版本中,开发者可以通过插件的方式很方便的扩充已有web应用的功能,而不需要修改原有的应用。

以前的Servlet的流程:

  1. Servlet接收到请求之后,需要对请求携带的数据进行一些处理
  2. 调用业务接口的某些方法,已完成业务处理
  3. 根据处理的结果提交响应,Servlet线程结束

其中第二步的业务处理通常是最耗时的,这主要体现数据库操作,以及其它的跨网络调用等、在此过程中、Servlet线程一直处于阻塞状态,直到业务方法执行完毕。在处理业务过程中、Servlet资源一直被占用而得不到释放,对于并发较大的应用,这有可能造成性能瓶颈,对此,在以前通常采用私有解决方案,来提前结束Servlet线程,并及时释放资源。

现在的Servlet的流程:

  1. Servlet接收到请求之后,需要对请求携带的数据进行一些处理
  2. Servlet线程将请求转交给一个异步线程来执行业务处理,线程本身返回至容器。此时Servlet还没有生成响应数据,异步线程处理完业务以后,可以直接生成响应数据(异步线程拥有ServletRequest和ServletResponse对象的引用),或者将请求继续转发给其它的Servlet

如此一来,Servlet线程不再是一直处于阻塞状态以等待业务逻辑的处理,而是启动异步线程之后可以立即返回。

概述4.0新特性:

  1. 服务器推送:最直观的 HTTP/2 强化功能,通过 PushBuilder 接口在 servlet 中公开。服务器推送功能还在 JavaServer Faces API 中实现,并在 RenderResponsePhase 生命周期内调用,以便 JSF 页面可以利用其增强性能。
  2. 全新 servlet 映射发现接口:HttpServletMapping 使框架能够获取有关激活给定 servlet 请求的 URL 信息。这可能对框架尤为有用,这些框架需要这一信息来运行内部工作。

Servlet4.0的优点:

服务器推送使服务器能预测客户端请求的资源需求。然后,在完成请求处理之前,它可以将这些资源发送到客户端。

要了解服务器推送的好处,可以考虑一个包含图像和其他依赖项(比如 CSS 和 JavaScript 文件)的网页。客户端发出一个针对该网页的请求。服务器然后分析所请求的页面,确定呈现它所需的资源,并主动将这些资源发送到客户端的缓存。

在执行所有这些操作的同时,服务器仍在处理原始网页请求。客户端收到响应时,它需要的资源已经位于缓存中。Servlet 4.0 通过 PushBuilder 接口公开服务器推送、也可以推送静态资源等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值