Java EE 6新特性之Servlet 3.0的异步处理

日期: 2010-01-14 翻译:黄永兵 来源:TechTarget中国 英文

  Servlet 3.0:JSR 315规范是Servlet技术的最新版本,这个规范的草案于2009年6月发布,并加入到Java EE 6当中来。Servlet 3.0中加入了对异步处理的支持,Servlet线程不用再等待资源如数据库的响应,在收到响应前可以继续处理其它事情,这个支持使持续客户端连接成为可能,如聊天室应用程序,有了异步处理的支持,Servlet和Ajax的搭配使用效率会更好。

  为了确保为同步处理编写的代码不被用于异步上下文中,Servlet 3.0要求你在@WebServlet注解中将asyncSupported属性设为true,你也可以在@WebFilter注解中将asynchSupported属性设为true使Servlet过滤器也支持异步。

  异步处理也包括ServletRequest方法,如startAsync(),它产生一个异步请求和新的类,如AsyncContext,这个类为异步操作提供执行上下文。

  下面是一个处理异步请求的Servlet示例:

以下是引用片段:
@WebServlet(name=”CalculatorServlet”, asyncSupported=true, urlPatterns={“/calc”, “/getVal”})    
 public class CalculatorServlet extends HttpServlet{       
 public void doGet(HttpServletRequest req, HttpServletResponse res) {      
  …      
     AsyncContext aCtx = req.startAsync(req, res);      
  }      
  …     }   

  Servlet 3.0也包括一个新的监听器类AsyncListener,当一个异步操作完成或超时时它会通知你,AsyncContext类包括一个complete()方法,当异步操作完成时你可以用它提交响应,AsyncListener类有一个dispatch()方法,它可以将异步请求转发给容器,以便其它框架,如JSP可以产生响应。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • Spring针对Java 8升级

    Java 8刚刚在几周前发布。后来Spring Framework项目负责人发表了题为《企业项目中的Java 8》的文章。文中,指出那些著名的Java EE应用服务器如何不允许轻松升级。

  • 你应该远离的六个Java特性

    近日,Tarnovski撰文谈到了普通开发者应该尽量避免使用的6个Java特性,这些特性常见于各种框架或库当中,使用这些特性也许会给你所开发的应用带来灾难。

  • 从测试数据来看Node.js和Java EE的性能区别

    本文是通过从CouchDB上读取JSON数据来比较Node.js和Java EE之间的性能的。究竟谁的性能更好些?

  • Spring 烂!差!

    有些人可能对Spring的第一印象不太好,它真的很烂,很差吗,也许这只是你的一种偏见,它也有是自己的优点的。