`
江南白衣
  • 浏览: 550006 次
  • 来自: 广州
社区版块
存档分类
最新评论

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 JettyAdvanced 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){
          ...
    }
}

其他方向

分享到:
评论
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才是最近开源而已
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最近才开源的说
5 楼 Readonly 2007-06-27  
这个:

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

出口转内销?
4 楼 rainytooo 2007-06-27  
再不规范一下 java程序员会成为最累的程序员
3 楼 winterwolf 2007-06-27  
动态语言用javascript可能更好 前台后台的语言统一

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

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强,尤其是开发效率。动态类型的语言已经胜利了,这就是现实。
1 楼 huangpengxiao 2007-06-25  
看起来很美

相关推荐

    Servlet3.0 异步处理 页面推送 Comet 实例

    Servlet3.0是Java EE平台中的一个重要更新,它引入了许多新特性,其中一项重大改进就是对异步处理的支持。这项特性使得服务器可以处理长时间运行的任务,而不会阻塞其他请求,提高了系统的响应能力和效率。本实例...

    servlet3.0推送聊天室

    在IT行业中,Servlet是Java Web开发中的核心组件,用于处理HTTP请求并返回响应。Servlet 3.0作为Servlet规范的一个重要版本,引入了许多新特性,其中最引人注目的就是异步处理和支持Web插座(WebSocket),这使得...

    catalina-comet.jar

    Comet是一种在Web开发中实现服务器推送技术的方法,它允许服务器主动向客户端发送数据,而不仅仅是响应客户端的请求。这种技术对于实时交互的应用场景如聊天、股票更新、在线游戏等非常有用,因为它能显著减少延迟并...

    Servlet3.0

    Servlet3.0是Java EE平台中的一个重要里程碑,它在Servlet规范上引入了许多创新特性,极大地提高了Web...同时,Servlet 3.0的其他改进,如注解驱动和零部署,也简化了开发和部署流程,使得Java Web开发更加高效便捷。

    comet4j-tomcat6.jar、comet4j-tomcat7.jar、comet4j.js

    - `comet4j-tomcat7.jar`:此库对应于Tomcat7版本,适应Servlet 3.0规范。Tomcat7引入了一些新的特性和性能改进,使得Comet4J在该版本上的使用更加顺畅。 3. **Comet4J.js**: `comet4j.js`是客户端JavaScript库...

    comet4j-tomcat7.jar comet4j.js

    2. **Java Servlet**:由于Comet4j基于Servlet,因此开发者需要熟悉Servlet API,知道如何创建Servlet,处理请求和响应。 3. **Tomcat配置**:学习如何在Tomcat服务器上配置Comet4j,包括添加必要的依赖和配置文件...

    servlet 3.0 异步 推送 聊天室

    Servlet 3.0引入了一种全新的特性,即异步处理能力,这极大地提高了Web应用程序的性能和响应性,尤其是在处理长时间运行的任务时。在传统的Servlet中,请求处理线程会一直占用,直到整个请求生命周期结束,这可能...

    atmosphere-applet-comet.jar.zip

    这使得开发者能够利用Java Applet的优势,结合Atmosphere的实时通信能力,开发出高性能的Web应用。 "license.txt"文件则包含了该库的使用许可信息,对于开发者来说,这是必须遵守的重要法律文档。通常,它会定义你...

    comet4j 所需js以及comet4j-tomcat6.jar、comet4j-tomcat7.jar包

    Tomcat是Apache软件基金会开发的一款广泛使用的开源Servlet容器。这两个JAR文件包含了Comet4j与Tomcat集成所需的所有类和资源,使得Comet4j能够无缝地在Tomcat环境中运行。开发者需要将这些JAR文件添加到Tomcat的lib...

    comet4j-tomcat6.jar和comet4j-tomcat7.jar和comet4j.js

    通过这种方式,Comet4j为开发者提供了一种简单且高效的方法,来构建具有实时通信功能的Java Web应用,无需依赖其他复杂的框架或技术,如WebSocket。然而,随着技术的发展,现代Web应用更多地转向使用WebSocket,因为...

    DWR+JAVA进行web消息推送dwr-comet.zip

    在本文中,我们将深入探讨如何使用DWR(Direct Web Remoting)与Java技术结合实现Web消息推送功能。DWR是一种JavaScript库,它允许在浏览器和服务器之间进行实时、双向通信,为Web应用提供了类似AJAX的功能,但更加...

    servlet.api(中文版)

    Servlet API是Java Web开发中的核心组件,它是Java Servlet规范的一部分,用于定义服务器端与Web应用程序交互的接口和类。这个中文版的文档对于理解和使用Servlet技术尤其有帮助,特别是对于那些中文阅读更舒适的...

    comet4j.js,comet4j-tomcat6.jar,comet4j-tomcat7.jar

    Comet4J(Comet for Java)是一个纯粹基于AJAX(XMLHTTPRequest)的服务器推送框架,消息以JSON方式传递,具备长轮询、长连接、自动选择三种工作模式 文件包含comet4j-tomcat6.jar , comet4j-tomcat7.jar , comet4j.js...

    comet4j-tomcat7.jar

    comet4j消息推送所需的comet4j-tomcat7.jar包,comet4j-tomcat7.jar

    atmosphere-compat-jbossweb-0.6.3.jar.zip

    "atmosphere-compat-jbossweb-0.6.3.jar.zip"就是这样一个组件,它在Java Web开发中扮演着重要的角色。本文将深入解析这个压缩包及其包含的文件,以帮助开发者更好地理解和利用这些资源。 首先,"atmosphere-compat...

    atmosphere-applet-comet.jar

    atmosphere-applet-comet.jar

    comet4j-tomcat6,comet4j-tomcat7,comet4j.js,以及一个样例

    Comet4J是一个Java库,专门用于在Tomcat应用服务器上实现Comet技术,这是一种用于创建持久性HTTP连接的方法,以实现实时Web应用程序。在传统的HTTP协议中,客户端和服务器之间的通信是基于请求-响应模型的,而Comet...

    comet4j_7.jar和comet4j-0.0.2.js

    Comet4j是一个开源的Java库,主要用于实现服务器向客户端的实时推送技术,常用于构建聊天应用和其他需要实时交互的Web服务。这个技术基于HTTP长连接(Comet技术),能够克服传统的HTTP请求-响应模式中延迟高、效率低...

Global site tag (gtag.js) - Google Analytics