Apache Tomcat 7成為最新穩(wěn)定版本
2011年1月11日發(fā)布的Tomcat 7.0.6已經(jīng)成為穩(wěn)定版本,這是Tomcat 7分支的第一個(gè)穩(wěn)定版本,用來取代2007年2月發(fā)布的Tomcat 6。
Apache決定不在Tomcat中添加對(duì)Java EE 6 Web Profile的完整支持,至少在眼下是這樣的。因此Tomcat 7中只是簡(jiǎn)單地增加了Servlet 3.0(Java EE 6中引入的)的支持以及JavaServer Pages 2.2和EL 2.2的支持。新版本要求使用Java SE 6或更高版本。
Sevlet 3.0是一個(gè)重大更新,對(duì)規(guī)范做了很多細(xì)化,重點(diǎn)包括:
引入了對(duì)異步HTTP請(qǐng)求和響應(yīng)的標(biāo)準(zhǔn)化支持。雖然異步支持在Tomcat 6里就有了,但那是通過一個(gè)非標(biāo)準(zhǔn)的API實(shí)現(xiàn)的,標(biāo)準(zhǔn)化意味著Servlet 3版本可移植到不同容器中。
動(dòng)態(tài)配置:支持Web Fragment,庫程序可以用它來提供配置,不再需要開發(fā)者在應(yīng)用程序的web.xml文件中增加特定于庫的配置。
配置過濾器、監(jiān)聽器和Servlet時(shí)使用注解,進(jìn)一步減少了開發(fā)者所要編寫的XML數(shù)量。
Servlet 3.0還大量使用了泛型,改善了會(huì)話追蹤,引入了新的文件上傳功能。
Tomcat 7中的改進(jìn)也不是全都針對(duì)Servlet 3.0 API的,其中還有不少重要的安全性改進(jìn)。現(xiàn)在針對(duì)基于腳本的訪問、基于Web的訪問、JMX代理訪問和狀態(tài)頁訪問有了獨(dú)立的角色,允許做更具體的訪問控制。為了避免跨站請(qǐng)求偽造(CSRF)攻擊,所有的非冪等性請(qǐng)求(即多次執(zhí)行不會(huì)產(chǎn)生相同結(jié)果的操作)都要求生成一個(gè)隨機(jī)數(shù)。Tomcat 7還針對(duì)會(huì)話固定攻擊(session fixation attack)采取了一些防御措施。會(huì)話固定攻擊就是將客戶端的會(huì)話ID強(qiáng)制設(shè)置為一個(gè)明確的已知值。
開發(fā)團(tuán)隊(duì)還將繼續(xù)致力于解決一些容器內(nèi)存泄露的常見問題,改善日志系統(tǒng),改善容器啟動(dòng)時(shí)間。
最終Tomcat 7會(huì)提供一個(gè)輕量級(jí)API,允許開發(fā)者通過簡(jiǎn)單的幾行代碼嵌入容器。
想要使用完整Java EE 6 Web Profile的開發(fā)者可以在自己的項(xiàng)目里包含API。然而,Simple Web Profile Application Server(一個(gè)由社區(qū)主導(dǎo)的項(xiàng)目)正不斷發(fā)展來彌補(bǔ)這一缺陷。此外 Apache Geronimo(Tomcat為其提供Servlet容器)將支持Web Profile和完整的Java EE 6 Profile。
原文鏈接:http://www.infoq.com/cn/news/2011/01/tomcat7_stable
【編輯推薦】