Java Servlet API 3.0 提高应用可插入性(上)

日期: 2009-08-23 作者:Willam Brogden翻译:杨晓明 来源:TechTarget中国 英文

新servlet API的重要意义   Servlet API一直是Java最大成功点之一。它是由1997年引入的1.0版发展起来的,从1999年开始servlets被并入Java2 企业版(J2EE)。上一个最大变动的规范是2003年的2.5版。现在提出的Servlet 3.0规范供大众评审的最后草案已经发布,所以正是检验新特性的时候。

但是首先让我们总结一下从版本1.0到2.5的演变:   • 部署描述符。符合标准的web.xml用来向容器传递与部署相关的设置。起初的版本五花八门,不同厂商用的web.xml都是自己特有的。   • 安全。

在2.1版本中,在应用之间导致许可……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

新servlet API的重要意义

  Servlet API一直是Java最大成功点之一。它是由1997年引入的1.0版发展起来的,从1999年开始servlets被并入Java2 企业版(J2EE)。上一个最大变动的规范是2003年的2.5版。现在提出的Servlet 3.0规范供大众评审的最后草案已经发布,所以正是检验新特性的时候。但是首先让我们总结一下从版本1.0到2.5的演变:

  • 部署描述符。符合标准的web.xml用来向容器传递与部署相关的设置。起初的版本五花八门,不同厂商用的web.xml都是自己特有的。

  • 安全。在2.1版本中,在应用之间导致许可信息泄露的方法已经被删除或修改。

  • 开发转给Java社区。开发规范被转交给JCP(Java Community Process)委员会作为2000年的JSR (Java规范请求) 53,并于2001年发布了第一个版本。另外,这个组织还制定了JSP1.2规范。

  • 事件监听器。2.3版本引入了一种通过事件影响web应用的机制,使应用能够被传递给相关的处理。它的配置要借助于web.xml中的条目。

  • 过滤器。2.3版本还引入一个叫做“过滤器”的概念,可以用来重定向或修改一个请求及响应。过滤器的配置也是在部署描述符中完成的。

  当servlet2.5被设计出来时,从Java普通版本到标准的Java类库及许多专有工具,在许多重要的方面都已经改进。这些改进对servlet开发者有很明显的帮助。尤其是,Java语言在1.4版本中加入的非阻塞输入输出(NIO)和1.5版本中加入的标注(annotation)。Servlet 3.0 的API恰好利用了这两个特性。

  进入3.0时代

  从2007年7月开始3.0版本的制定进程。JSR委员会的各类专家审查了许多提议和讨论,跟最初的草案比规范有了很大改变。下面这几点大意是规范的作者们觉得最重要部分:

  • 可插接式的应用与简易的部署

  需要使用程序标注和更灵活的配置来简化部署,使向servlet容器插入一个新应用时变得更容易。理想的情况是,使用了标注的web应用不再需要额外的配置文件。有了Java标注,让很多开发者可以向Java类中加元数据,很受一些工具包开发者们的欢迎,因为他们能促进可插接性。

  • 支持高级的输入输出

  在NIO之前,Java网络工具要求为每个原始的网络连接分配一个程序的线程,所以一个servlet容器要对同步连接的数量加以严格限制。而非阻塞的输入和输出(NIO)提高了请求的数量,这些请求可以被处理,并且能和像AJAX这样的新富互联网应用技术一起良好地工作。

  • 用Jersey和其他高级工具调整

  在web服务工具方面也有的显著创新,比如在依赖于servlet API的Jersy工程中实现了RESTfulWeb服务API(JSR-311)。Servlet 3.0将支持Jersey和许多其他技术,像JavaServerFaces, Portlets, 和JavaFX。

相关推荐

  • 高效使用PortletSession小技巧

    PortletSession有一个有趣的方面,就是在默认的情况下,它的数据实际上是存储的PortletSession中的,而且是本地的,只能访问portlet创建的实例。

  • 尊重servlet API 高效开发portlet

    即使是经验软件开发人员跳转到JSR-286 portlet开发时也会心乱如麻,portlet和servlet有什么不同?

  • Java程序员必备的七大全能

    Java已逐渐成为了企业开发的首选语言,众多的IT组织使用Java来做大型企业项目。作为Java程序员你的技能是否能够满足企业的要求?

  • Java web服务:web服务安全性状态

    所有主要web服务栈都为WS-Security和相关web服务安全性标准提供一定程度的支持。我在本系列中介绍的3个开源栈—Apache Axis2、Sun/Oracle Metro……