原文地址:http://blog.csdn.net/calvinxiu/archive/2007/06/24/1664374.aspx,版權所有,轉載請保留原文鏈接,謝謝。--江南白衣
Java EE 5.0 規範的筆墨在EJB3.0與Web Service上,隨着萬衆期待的Struts2.0揭開面紗,Java在Web應用開發上便變得沉悶乏味起來。
在JavaOne2007 上有篇 The Future of the Java Technology Web Tier宣講了Sun的Servlet 3.0、REST、Comet計劃,在大家漸漸失望的時候,又在前面吊了一個紅蘿蔔。Servlet 3.0
Infoq 中文站:Sun向JCP提交了Servlet3.0規範
Infoq 英文站:Sun Submits Servlet 3.0 Specification to JCP
-
Annotation標註的servlets,可編程訪問並動態改變的web.xml,使得以往經常需要重啓的web應用配置終於擁有了動態特性,web framework們擁有了熱插拔的能力。
-
Async and Comet support。
-
RESTul Service。
-
一堆看上去也不錯的特性,如file upload。
Sun,IBM,BEA,Oracle,Apache,RedHat,Interface21加上Hani Suleiman和Jason Hunter作爲初始的專家組,Jetty的Greg Wilkins作爲支撐成員。
Grizzly, Tomcat and Jetty 會對Comet API Review. Struts Shale, DWR, Spring Web Flow, Wicket會對可插拔Web Framework進行Review,看起來挺民主的。
Comet
又一個新詞,服務端在事件發生時主動向客戶端推送--比如股票價格,聊天室信息,比客戶端定時輪詢服務器,在模型上高得多。但這種HTTP的PUSH的方式實際上有着重重困難如長連接的資源消耗,否則也早大規模實現了。
Cometed with Jetty ,Advanced IO and Tomcat 6.0 ,Glassfish的Grizzy子項目 ,三個項目在NIO的基礎上分別用自己的方法作了支持,而Non-blocking input/output,Delay request handling/response close,Blocking - Non-blocking notification是Servlet 3.0的統一要求。
Comet實現的新選擇 (dlee)
Real-World Comet-Based Applications(Javaone2007)
REST
REST作爲最輕量級的Service方案(輕的,誰都會寫的Service方案--REST與JSON),本來需要框架輔助的東西就不多。如果硬說有,就是URL Mapping,並分拆URL中的參數,以及結果集的轉換。Cetia4就是作類似的東西,但在又冒出一堆的REST框架來之前,Servlet3.0先規範一下無疑是好的,真的被無數MVC框架嚇怕了。
public class MyRestService {
@HttpMethod
@ProduceMime(“application/jpeg”)
public InputStream getImage( @UriParam(“imageid”) String imageId){
...
}
}
其他方向
-
Ajax繼續發展:Dojo,Yahoo,Spry,Scriptaculous,GWT。
-
Mashup:Web2.0 與Portal的發展進入Mashup時代。Blueprints for Mashups: Practical Strategies, Tips, and Code for Designing and Building(Javaone2007)
-
Feeds (RSS/Atom)繼續發展:Yahoo pipes, Google Data,尤其是Atom,IETF的feed format 與publishing protocol, not only for blog。Project有ROME、ROME-Propono、Abdera。
-
Scripting:在Server端用Script如Javascript編程。Sun的Phobos項目,Project Phobos: Server-Side Scripting for the Java Platform(Javaone2007)