当前位置: 代码迷 >> Web前端 >> Java Web开发的将来-Servlet 3.0,Comet,REST.
  详细解决方案

Java Web开发的将来-Servlet 3.0,Comet,REST.

热度:818   发布时间:2012-11-08 08:48:11.0
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

  • 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)
1 楼 huangpengxiao 2007-06-25  
看起来很美
2 楼 dlee 2007-06-25  
大量使用Annotation代替XML配置,确实是一个简化的方向。不过Java的一些语言层面的问题(主要是为静态类型所付出的代价),才是真正影响Web应用开发效率的原因。这一点Bruce A. Tate在《超越Java》中已经指出了。Annotation的作用,我们不必寄予很高的期待。

Cetia4在简化Java Web开发方面,要比现有的主流Java Web MVC框架都要好,这主要是因为两个原因:
1. 大量使用Annotation代替XML配置,并且使用明智选择的、直观的默认配置,使得开发者必须要写的配置降低到最少。
2. REST和面向资源的设计是一种对于服务器更加有效的抽象方式,可以得到更加有效的交互风格。

Java的问题是,在很多地方,意识到复杂性才是最大的问题,并且需要改变,这个时候已经太晚了。为了要等待遥遥无期的共产主义的实现,而不得不忍受现在的种种丑恶现象,还不如花上一个月学习成本,转到Ruby上面。

我现在越来越理解为何Java并不是开源社区最受欢迎的语言了,甚至还普遍遭到排斥。开源社区最受欢迎的语言,三年前是Python,现在是Ruby。它们在很多方面都要比Java强,尤其是开发效率。动态类型的语言已经胜利了,这就是现实。
3 楼 winterwolf 2007-06-27  
动态语言用javascript可能更好 前台后台的语言统一

复杂的东西可以通过js调用java

4 楼 rainytooo 2007-06-27  
再不规范一下 java程序员会成为最累的程序员
5 楼 Readonly 2007-06-27  
这个:

http://www.iteye.com/topic/94841

出口转内销?
6 楼 yananay 2007-06-27  
dlee 写道
大量使用Annotation代替XML配置,确实是一个简化的方向。不过Java的一些语言层面的问题(主要是为静态类型所付出的代价),才是真正影响Web应用开发效率的原因。这一点Bruce A. Tate在《超越Java》中已经指出了。Annotation的作用,我们不必寄予很高的期待。

Cetia4在简化Java Web开发方面,要比现有的主流Java Web MVC框架都要好,这主要是因为两个原因:
1. 大量使用Annotation代替XML配置,并且使用明智选择的、直观的默认配置,使得开发者必须要写的配置降低到最少。
2. REST和面向资源的设计是一种对于服务器更加有效的抽象方式,可以得到更加有效的交互风格。

Java的问题是,在很多地方,意识到复杂性才是最大的问题,并且需要改变,这个时候已经太晚了。为了要等待遥遥无期的共产主义的实现,而不得不忍受现在的种种丑恶现象,还不如花上一个月学习成本,转到Ruby上面。

我现在越来越理解为何Java并不是开源社区最受欢迎的语言了,甚至还普遍遭到排斥。开源社区最受欢迎的语言,三年前是Python,现在是Ruby。它们在很多方面都要比Java强,尤其是开发效率。动态类型的语言已经胜利了,这就是现实。


好像java最近才开源的说
7 楼 calmness 2007-06-28  
yananay 写道
dlee 写道
大量使用Annotation代替XML配置,确实是一个简化的方向。不过Java的一些语言层面的问题(主要是为静态类型所付出的代价),才是真正影响Web应用开发效率的原因。这一点Bruce A. Tate在《超越Java》中已经指出了。Annotation的作用,我们不必寄予很高的期待。

Cetia4在简化Java Web开发方面,要比现有的主流Java Web MVC框架都要好,这主要是因为两个原因:
1. 大量使用Annotation代替XML配置,并且使用明智选择的、直观的默认配置,使得开发者必须要写的配置降低到最少。
2. REST和面向资源的设计是一种对于服务器更加有效的抽象方式,可以得到更加有效的交互风格。

Java的问题是,在很多地方,意识到复杂性才是最大的问题,并且需要改变,这个时候已经太晚了。为了要等待遥遥无期的共产主义的实现,而不得不忍受现在的种种丑恶现象,还不如花上一个月学习成本,转到Ruby上面。

我现在越来越理解为何Java并不是开源社区最受欢迎的语言了,甚至还普遍遭到排斥。开源社区最受欢迎的语言,三年前是Python,现在是Ruby。它们在很多方面都要比Java强,尤其是开发效率。动态类型的语言已经胜利了,这就是现实。


好像java最近才开源的说


JAVA一直都是开源的,只是JVM才是最近开源而已
  相关解决方案