2008年12月30日 星期二

Servlet3.0 Briefing

Servlet3.0規範新鮮出爐,J2EE陣營實力大增

[IT168專稿]在2005年9月26日,Sun推出了Servlet的最新版API:Servlet2.5。這套Servlet API和以前的Servlet有著很大的不同。最大的區別就是Servlet2.5是完全基於J2SE5.0的。因此,它也理所當然地擁有了 J2SE5.0的所有特性。 Servlet2.5利用J2SE5.0的註釋特性使它的配置更容易。然而,由於在2005年J2SE5.0剛推出不久,支持J2SE5.0的Web服務 器也不多,因此,當時Servlet2.5在使用上並沒有馬上普及。時隔兩年後,Sun又推出了基於J2SE5.0的Servlet的第二個版本 3.0(就是JSR-315)。在這一版本中增加了很多有趣的特性。如可編程的登入登出,通過annotations進行配置,異步通訊等。

下面就讓我們 來看看Servet3.0的主要特性。

一、更靈活的Web框架

現在幾乎所有的基於Java的Web框架都是建立在Servlet之上的。大多數Web構架都是通過Servlets或web.xml來 配置和發布的。而J2SE新加入的註釋功能為我們提供了更好的選擇。我們可以利用註釋來設置Servlets、Listeners、filters等。但 註釋是直接寫在程序中的,無法動態改變配置,因此,JSR同時提供了這兩種方式來操作Servlet。這樣將使Web應用程序具有更大的彈性。

二、EOD的支持

Servlet3.0將使用多種技術來增強API的能力。如使用註釋來聲明編程類型。這將成為EOD的目標之一:使Web程序零配置。也就是說我們將使用 發布描述來覆蓋傳統的配置文章。還有就是泛型的應用,將大大加強程序的Servlet的表現力。在未來的J2SE版本中將加入支持其他語言的能力,這也有 助於增強Servlet API本身的實力。

三、異步通訊的支持

Servlet3.0支持以下異步通訊特性:

1.非阻塞(Non-blocking)輸入:使用這種輸入方式,可以在數據因某種原因暫時未到達時程序不會因此而被阻塞。
2.非阻塞輸出:和非阻塞輸入類似,當由於網絡問題寫入數據緩慢時程序不會受到阻塞。
3.延遲請求處理:在AJAX Web程序中客戶端程序可以向服務端發出異步請求,直到超時或事件返回來處理這個請求。延遲請求在其他的地方也是非常有用的,如我們在處理數據之前必須要 得到一些資源,但這些資源正處在遠程網絡中,而且速度並不快。這就需要異步來處理這種情況。
4.阻塞-非阻塞通知:這個功能是將通知信息放到阻塞或非阻塞事件中。然後由客戶端負責提取。
5.支持通道:通道是JDK1.4及以上版本提供的一種新的通訊API。使用Channel可以更好的進行網絡之間的通訊。也可以增強創建、訂閱、取消等操作的安全性。
6.安全:支持登錄和註銷功能。
7.其他功能
(1)支持歡迎界面。
(2) ServletContentListener排序。
(3)在初始化時可以定制容器的大小。
(4)可以監視文件上傳的進程。

上面只是Servlet3.0的一部分特性。從這些特性可以看出,Servlet3.0 API確實得到了很大的飛越,除了Servlet,EJB3.0也利用J2SE5.0的新特性重獲新生。也許在不久的將來Servlet3.0和 EJB3.0將會成為新的組合,在J2EE應用中起著舉足輕重的作用,就讓我們拭目以待吧!

Source: http://tech.it168.com

沒有留言: