新聞中心
【精選譯文】在之前翻譯的的Java EE 6系列中,我們介紹了Servlet 3.0:JSR 315規(guī)范是Servlet技術(shù)的最新版本,這個(gè)規(guī)范的草案于2009年6月發(fā)布,并加入到Java EE 6當(dāng)中來。Servlet 3.0中加入了對(duì)異步處理的支持,Servlet線程不用再等待資源如數(shù)據(jù)庫(kù)的響應(yīng),在收到響應(yīng)前可以繼續(xù)處理其它事情,這個(gè)支持使持續(xù)客戶端連接成為可能,如聊天室應(yīng)用程序,有了異步處理的支持,Servlet和Ajax的搭配使用效率會(huì)更好。

為紅河等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及紅河網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站制作、紅河網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
為了確保為同步處理編寫的代碼不被用于異步上下文中,Servlet 3.0要求你在@WebServlet注解中將asyncSupported屬性設(shè)為true,你也可以在@WebFilter注解中將asynchSupported屬性設(shè)為true使Servlet過濾器也支持異步。
異步處理也包括ServletRequest方法,如startAsync(),它產(chǎn)生一個(gè)異步請(qǐng)求和新的類,如AsyncContext,這個(gè)類為異步操作提供執(zhí)行上下文。
下面是一個(gè)處理異步請(qǐng)求的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);
- }
- ...
- }
#t#注意startAsync()方法返回AsyncContext對(duì)象。
Servlet 3.0也包括一個(gè)新的監(jiān)聽器類AsyncListener,當(dāng)一個(gè)異步操作完成或超時(shí)時(shí)它會(huì)通知你,AsyncContext類包括一個(gè)complete()方法,當(dāng)異步操作完成時(shí)你可以用它提交響應(yīng),AsyncListener類有一個(gè)dispatch()方法,它可以將異步請(qǐng)求轉(zhuǎn)發(fā)給容器,以便其它框架,如JSP可以產(chǎn)生響應(yīng)。
原文:Introducing the Java EE 6 Platform 作者:Ed Ort
分享標(biāo)題:JavaEE6新特性之Servlet3.0的異步處理
標(biāo)題路徑:http://fisionsoft.com.cn/article/codidgj.html


咨詢
建站咨詢
