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

原创
开发 后端
Servlet 3.0是Java EE 6使用的全新Servlet规范,这个版本的Servlet规范加入了诸多新特性,其中包括增强的可扩展性,以及本文介绍的对异步处理的支持。

【51CTO精选译文】在之前51CTO翻译的的Java EE 6系列中,我们介绍了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示例:

  1. @WebServlet(name="CalculatorServlet", asyncSupported=true, urlPatterns={"/calc""/getVal"})  
  2.    public class CalculatorServlet extends HttpServlet{  
  3.       public void doGet(HttpServletRequest req, HttpServletResponse res) {  
  4.       ...  
  5.          AsyncContext aCtx = req.startAsync(req, res);  
  6.       }  
  7.       ...  
  8.    }  
  9.  

#t#注意startAsync()方法返回AsyncContext对象。

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

【51CTO.com译稿,非经授权请勿转载。合作站点转载请注明原文译者和出处为51CTO.com,且不得修改原文内容。】

原文:Introducing the Java EE 6 Platform 作者:Ed Ort

责任编辑:yangsai 来源: 51CTO.com
相关推荐

2009-07-08 09:35:53

Java ServleServlet 3.0

2013-09-02 09:18:59

2009-12-11 11:33:09

NetBeans 6.

2009-07-23 09:42:44

EJB 3.1Java EE 6

2010-01-22 09:52:32

JPA 2.0Java EE 6

2011-04-02 14:33:51

Bean ValidaJava EE 6Java

2010-04-30 09:19:05

Servlet 3.0

2009-06-16 11:23:00

InstrumentaJava SE 6新特

2011-07-27 16:12:35

Linux KerneLinux内核

2009-07-27 09:46:28

Silverlight

2009-08-31 14:45:07

Visual C# 3

2009-06-16 11:24:00

HTTP增强Java SE 6新特

2010-01-05 09:15:45

Java EE 6Bean验证

2009-08-27 16:24:48

扩展方法C# 3.0新特性

2022-10-26 07:14:25

Spring 6Spring业务

2009-08-24 17:55:44

C#3.0新特性

2009-06-22 09:34:00

Servlet的生命周

2010-05-11 16:22:40

2011-03-24 09:22:36

Java 7JDBC4

2009-07-08 10:02:41

Servlet 3.0
点赞
收藏

51CTO技术栈公众号