Tomcat 7 Beta 开始支持 Servlet 3.0、升级了安全性并提升了操作的友好性

阅读数:1627 2010 年 7 月 9 日

话题:Java语言 & 开发

近日,Apache 软件基金会发布了 Tomcat Web 服务器 7.0 Beta 版,这也是 3 年多以来首次发布的新版本。新版本的开发时间持续了18 个月,现在各位读者可以从 Apache 软件基金会的 Tomcat 项目站点上下载

新版本的 Tomcat 实现了很多新规范,包括Servlet 3.0JSP 2.2EL 2.2。对 Servlet 3.0 的支持也宣告世界上使用最广泛的 Java Web 容器已经与最新的 Servlet 规范(Java EE 6 规范的一部分)与时俱进了。Servlet 3.0 进行了很多增强(比如说 API 已经得到了增强)并引入了众多新特性,旨在简化开发者的工作量,可以更快速地构建可伸缩的应用。Servlet 3.0规范的一个关键特性就是对标准的(从技术角度来看,Tomcat、Jetty 等容器已经通过非标准的 API 实现了这些特性)异步 HTTP 请求与响应的支持。规范描述了文件上传的后端支持、这样就无需使用像Apache Commons File Upload 组件等第三方程序库了。

规范还支持动态配置 Web 应用,这将产生深远的影响。可以通过注解来构造 Web 层(如 Servlet),这样就无需再使用 WEB-INF/web.xml 部署描述符文件了。此外,新的规范还定义了一个 API,通过这个 API 能够在运行期以编程的方式将 Servlet、Filter 注册到容器中。Web Fragments 的出现允许第三方程序库拥有自己的 web.xml 描述符文件,配置会加到 Web 应用的主 web.xml 文件中。比如说,可以将某个 Web 框架的 jar 文件直接放到应用的 WEB-INF/lib 目录下,容器会自动完成配置。

Tomcat 7 增加了对 Session 定位(fixation)攻击的防护措施。所谓 Session 定位攻击,就是强制将客户端的 Session ID 修改为明确的已知值。此外,Tomcat 7 还支持 SSL Session 跟踪,对各种访问机制(比如 JMX、Web、脚本访问等)提供更加细粒度的访问许可。

对于那些想要嵌入式容器的开发者来说,新版本的 Tomcat 7 提供了更大的灵活性;它公开了一个轻量级的 API 用于将容器嵌入到客户端代码中。除此之外,Tomcat 7 所需的 jar 文件更少,这样就可以根据需要构建 Tomcat 了。

此次发布还简化了服务器的管理工作,支持异步的日志线程,可以独立于请求 / 响应管道将其写到日志中。Tomcat 7 对内存泄漏的预防、识别与查找提供了极佳的支持,这种支持关键在于 Tomcat 7 改进的类装载器和JreLeakPreventionListener 类。Tomcat 7 首度支持“aliases”,这非常类似于 Apache 服务器的同名特性。凭借这个特性,Tomcat 中的应用可以看到外部资源的内容,就像文件系统一样。

最后要说的是,Tomcat 7 并不支持 Java EE 6 web-profile。Java EE 6 web profile 定义了整个 Java EE 规范的一个子集,主要面向 Web 应用。若想了解关于 Java EE 6 规范、尤其是 web profile 规范的更多信息,请查看Java EE 6 Platform 草案中的 Web Profile 章节。从概念上来说,这么做可以减少应用服务器厂商维护完整的向后兼容性的负担。Java EE 6 web profile 对于那些想要获得认证的 Servlet 容器来说是很理想的选择。Simple Web Profile Application Server项目就旨在通过 Apache 软件基金会自己的组件构建一个兼容于 Java EE 6 web-profile 的服务器,其基础则是 Apache Tomcat 7。

查看英文原文:Tomcat 7 Beta Debuts Servlet 3.0 Support, Security Upgrades and Operations-Friendly Updates