作者:Eilen,轉載需注明。博客主頁:http://www.cnblogs.com/Eilen/
一、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加密提供了額外的診斷信息。