InfoQ

新闻

Sun向JCP提交了Servlet3.0规范

作者 Xandy Johnson 译者 宋玮 发布于 2007年6月23日 上午9时42分

社区
Java
主题
JCP标准

Sun 已经向JCP(Java Community Process)提交了Servlet3.0规范——JSR 315(Java Specification Request)。其高级目标包括可插拔web框架、EoD(ease of development——易于开发)特征、支持异步和Comet、安全、与其他规范结合、以及其它各项改进。它准备包含在Java EE 6中,Java EE 6的最终版大约于2008第4季度发布。预计不出2007年7月2日就会出评论。

以下是这些目标的详细版本,来自JSR 315提案

  • 可插拔的Web框架
    • 几乎所有基于Java的web框架都建立在servlet之上。现今大多数web框架要么通过servlet、要么通过Web.xml插入。利用标注(Annotation)来定义servlet、listener、filter将使之(可插拔)成为可能。程序访问web.xml和动态改变web应用配置是所期望的特性。该JSR将致力于提供把不同web框架无缝地插入到web应用的能力。
  • EOD
    • 标注——利用标注来作为编程的声明风格。
    • web应用零配置是EoD努力方向之一。部署描述符将被用来覆盖配置。
    • 范型(generic)——在API中尽可能利用范型。
    • 使用其它语言增强可能需要改善API可用性的地方。
  • 支持异步和Comet
    • 非阻塞输入——从客户端接收数据,即使数据到达缓慢也不会发生阻塞。
    • 非阻塞输出——发送数据到客户端,即使客户端或网络很慢也不会发生阻塞。
    • 延迟请求处理——Ajax web应用的Comet风格,可以要求一个请求处理被延迟,直到超时或一个事件发生。延迟请求处理对以下情况也很有用:如果远程的/迟缓的资源必须在为该请求服务之前被获得;或者如果访问一个特殊资源,其需要扼杀一些请求以防止太多的并发访问。
    • 延迟响应关闭——Ajax web应用的Comet风格,可以要求响应保持打开,以允许当异步事件产生时发送额外的数据。
    • 阻塞/非阻塞通知——通知阻塞或非阻塞事件。
    • 频道概念——订阅一个频道,以及从该频道获取异步事件的能力。这意味着可以创建、订阅、退订,以及应用一些诸如谁能加入、谁不能加入的安全限制。
  • 安全
    • login/logout能力。
    • 自注册。
  • 结合
    • 结合/需求,来自REST JST JSR(JSR 311 )。
    • 结合/需求,来自JSF 2.0 JSR(JSR 134 )。
  • 其它
    • 支持更好的欢迎文件(welcome file)。
    • ServletContextListener排序。
    • 容器范围内定义init参数。
    • 文件上载——过程侦听——存储中间或最终文件。
    • 澄清线程安全问题。

Greg Wilkins,Jetty 的主要开发者和本JSR的支撑成员,反对“支持异步和Comet”之下的一些目标。对于非阻塞输入和输出,他认为这一能力应该加入到容器中,而不是曝露给servlet开发者。对于延迟请求处理,他认为挂起/恢复语义会更好些,而且他们还将导致对延迟响应关闭的需求。

适当的时候现有项目将被用来作为指南。例如当前支持Comet的容器,如GrizzlyTomcat 和Jetty,在为Comet定义API时,将被复查(review)。“Comet 是一种编程技术,允许web服务器无需任何客户端请求而发送数据到客户端。它允许创建托管在浏览器中的事件驱动web应用。”针对于可插拔web框架,现存的一些web框架如ShaleDWRSpring Web FlowWiched 也将被分析。

查看英文原文:Sun Submits Servlet 3.0 Specification to JCP

Comet 技术也被标准化了,赞! 发表人 Jason Lai 发表于 2007年6月24日 上午2时56分
Re: Comet 技术也被标准化了,赞! 发表人 彪 谢 发表于 2008年1月30日 下午9时19分
纠错 发表人 图灵 刘江 发表于 2007年6月27日 上午9时42分
  1. 返回顶部

    Comet 技术也被标准化了,赞!

    2007年6月24日 上午2时56分 发表人 Jason Lai

    看来 Ajax 应用确实带来了对 Comet 技术越来越多的需求,而现在在 Servlet 3.0 将其标准化,正是体现了这一趋势。 加强关注。同意将 Comet 能力加入到容器中的说法,这样也无须开发人员更多地干预其具体实现细节。 不过 Comet 技术具体如何实现呢?长期占用一个 TCP 连接或者使用 poll 的方式?前者很容易导致服务器的并发性能急剧下降,而后者则无法保证需要同步传送的数据按照需求传输。或者说,是两种方式的透明混合?

  2. 返回顶部

    纠错

    2007年6月27日 上午9时42分 发表人 图灵 刘江

    1.第一段中的“预计不出2007年7月2日就会出评论”应该不符合原意,此句是指对JSR 315发表意见的截止时间。 2.EoD大小写不一致。 3.generic应该译为泛型为宜。这个术语是侯捷先生的贡献。 4.deployment descriptors应该译为部署描述文件。管文件叫字符,怎么也说不过去。 5.Use of other language enhancements where possible to improve the usability of the API.应该译为“尽可能使用其他语言特性增强改进API的可用性。” 6.“结合”(alignment)怀疑应该译为一致。 7.最后一行的Wiched应该是Wicket。另外这一段整段翻译得有些磕磕绊绊的感觉。

  3. 返回顶部

    Re: Comet 技术也被标准化了,赞!

    2008年1月30日 下午9时19分 发表人 彪 谢

    这是个问题,以前自己也想过,特别是ajax大量被应用的时候,怎样去利用一个有效的方式获取一个持续性连接? 个人认为这还得有浏览器配合才行!

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。