K 的博客

记录精彩的程序人生 开始使用

Apache Tomcat8 必备知识

一、Apache Tomcat 8 介绍

Apache Tomcat 8RC1 版于前几日发布。它 经过了 2 年的开发,引入了很多新特征,由于目前还只是 Alpha 版,故不推荐在产品中使用。但是我们应该了解它有哪些新特性,以便在稳定版出来后,用到我们的开发项目中去。

Apache Tomcat 8 支持 Java EE 7 规范,包括 Java Servlet 3.1、JSP 2.3、Java 统一表达式语言 EL 3.0 等。

我们可以来看看 Tomcat 最近几个版本分别支持的 JavaEE 规范。
------------------------
Tomcat 6: Servlet 2.5、JSP 2.1、EL 2.1
Tomcat7: Servlet 3.0、JSP 2.2、EL 2.2
Tomcat8: Servlet 3.1、JSP 2.3、EL 3.0
------------------------

除此以外,Tomcat 8 还支持像 Java WebSocket 1.0 这样的新规范。

 

二、Servlet 3.1 介绍

Servlet 3.1 最大的改进是实现了非阻塞式的 I/O 通信。这使得性能得到巨大的改进,数据可以通过 ReadListener 和 WriteListener 接口以异步的方式进行管理。
Servlet 3.1 的第二大改进是 HTTP 协议的升级。它允许客户端指定双方通信所使用的协议。比如说,服务器和客户端原本使用 HTTP 通信协议,能够升级成 WebSockets 通信。

三、JSP 2.3 介绍

JSP 2.3 相比 2.2 版本,并没有增加什么新功能或新特性,主要是维护和清理。

四、EL 3.0 介绍

EL 3.0 较之前的版本有很大的改进和增强。主要有:
1)EL 可以以 "独立模式" 的方式运行,即运行于 Servlets 和 JSP 页面之外。
简而言之,此增强可以使用 ELProcessor 类在 Servlet 容器内或容器外进行直接调用。
2)EL 表达式还支持 Lambda 表达式,这一点与 Java 8 相似,这些表达式可以简化代码。
表达式包括:参数集、Lambda 操作符、函数体。
3)集合操作符允许构造 Set、List 和 Map 等集合类型。
4)Java EL 流式 API 包含了 forEach、reduce、filter、map 等过滤器。
这里可以获得集合或列表 List,调用字符串夫妇,或者在列表 List 运行外部的过滤器或聚合函数。比如,你可以对字符串求和。
5)通过 EL 上下文的导入,开发者能够直接访问任何类的静态字段和方法。

五、WebSocket 1.0 介绍

Tomcat 8 正式支持 WebSocket 1.0 这个标准的 API。尽管 Tomcat 7 也提供了支持,但是它只是部分支持,因为在 Tomcat 7 的时代,标准还未正式制定。目前,大多数网站还以半双工模式运行 HTTP 通信,这意味着通信在两端都可能发生,但是在同一时间点,只能有 1 个方向的通信。这有点像对讲机。
WebSockets 协议是一个全双工协议,它意味着在同一时间点,通信是双向传输数据的。WebSockets 也是 HTML5 的规范之一。

六、Tomcat 8 内部的改进

Tomcat 8 最大的变化是资源 Resource。Tomcat 8 的资源进行了重构,可以更好地支持外部资源。原先的别名 Aliases、VirtualLoader、VirtualDirContext、JAR 资源和外部仓库等,现在都以单个的、一致的方法进行配置。这个新的资源的实现也可以用于主 WAR 包,并作为其它多个 Web 应用程序的基础。

此外,还有对 SPDY 协议的支持,这里还有些争议,因为 SPDY 还不够完善。

最后,Tomcat 8 还有些安全方面的增强,主要是 SSL 加密提供了额外的诊断信息。


评论
留下你的脚步