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规范
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框架吓怕了。
@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)