Java Web开发的未来--Servlet 3.0,Comet,REST...
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
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框架吓怕了。
@UriTemplate(“/images/{imageid}”)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) ??JAVA一直都是开源的,只是JVM才是最近开源而已