?? 0154.htm
字號(hào):
<html>
<head>
<title>新時(shí)代軟件教程:操作系統(tǒng) 主頁(yè)制作 服務(wù)器 設(shè)計(jì)軟件 網(wǎng)絡(luò)技術(shù) 編程語(yǔ)言 文字編輯</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋體}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1 {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
<p align="center"><big><strong>Apache Tomcat 4.0的新特性</strong></big></p>
<div align="right">--- (文/Robot)</div>
<br>(編者按:tomcat是JSP技術(shù)發(fā)展的先鋒,我已經(jīng)搞不清tomcat現(xiàn)在到第幾版了。4.0版應(yīng)該是未來(lái)的最新的一個(gè)版本,將隨著servlet/jsp新標(biāo)準(zhǔn)的推出而推出。通過(guò)本文的介紹,也許你可以看到一些jsp的未來(lái)。)<br>
<br>
簡(jiǎn)介<br>
Tomcat4.0包含三個(gè)主要的部分,包括:<br>
* Catalina - 一個(gè)符合Servlet API規(guī)范2.3的Servlet Container<br>
* Jasper - 一個(gè)符合JSP規(guī)范1.2的JSP編譯器和運(yùn)行環(huán)境<br>
* Webapps - Tomcat中包含的一些例子和用于測(cè)試的web例程,以及相關(guān)文檔。<br>
<br>
Tomcat4.0的一個(gè)主要目的是支持目前正在處于測(cè)試版的Servlet2.3規(guī)范和JSP1.2規(guī)范的新特性。本文主要介紹Tomcat4.0實(shí)現(xiàn)的這些新特性以及這些新特性目前在tomcat中的實(shí)現(xiàn)情況。<br>
<br>
Servlet API 規(guī)范2.3<br>
<br>
應(yīng)用程序中的事件:<br>
你可以在web.xml文件中注冊(cè)相應(yīng)的事件監(jiān)聽器,當(dāng)這些事件發(fā)生時(shí),在應(yīng)用程序中可以收到相應(yīng)的事件通知,這些事件包括:<br>
- 應(yīng)用啟動(dòng)<br>
- 應(yīng)用關(guān)閉<br>
- 應(yīng)用的屬性的增加、刪除、被替換 <br>
- Session創(chuàng)建<br>
- Session失效、超時(shí)<br>
- Session的屬性的增加、刪除、被替換<br>
<br>
事件監(jiān)聽器的功能被加入到Catalina,看來(lái)效果非常好。在Webapps中的web應(yīng)用examples中就有兩個(gè)監(jiān)聽器的例子用于通過(guò)ServerletContext.log()記錄相應(yīng)的事件。<br>
<br>
Servlet Fliter<br>
你能夠在web.xml文件中注冊(cè)類似與Catalina核心中Valves功能類似的的Filter。Filter主要具有以下特性:<br>
- Filter能夠映射成相應(yīng)的URL或特定的Servlet。<br>
- Filter能被用于對(duì)request,reponse對(duì)象進(jìn)行預(yù)處理、或后處理。<br>
- Filter能封裝request、response對(duì)象,比如可以對(duì)對(duì)象中的內(nèi)容進(jìn)行轉(zhuǎn)換。<br>
- Filter能夠?qū)υL問(wèn)請(qǐng)求直接響應(yīng),然后返回給客戶端,而不僅僅進(jìn)行訪問(wèn)請(qǐng)求的傳送,比如,你可以在應(yīng)用級(jí)進(jìn)行用戶認(rèn)證。<br>
<br>
與這些特性相關(guān)聯(lián),當(dāng)servlet傳遞參數(shù)給RequestDispatcher時(shí)就可以做這種類型的封裝。而在以前,你只能將初始的request對(duì)象傳遞給Servlet Container,并且從Servlet Container中得到返回的response對(duì)象。Servlet filter的功能目前已經(jīng)加入到Catalina中,并通過(guò)了初步測(cè)試。在應(yīng)用examples中有一個(gè)filter用于路徑映射和向調(diào)用servlet的映射("/servlet/*"),其中存放了最終傳遞給執(zhí)行Servlet的request對(duì)象屬性。<br>
<br>
安裝擴(kuò)展庫(kù)的依賴關(guān)系<br>
<br>
Web應(yīng)用程序或WEB-INF/lib中的jar文件,現(xiàn)在可以聲明對(duì)特定版本外部庫(kù)的依賴關(guān)系,這些外部庫(kù)是由Servlet Container作為共享擴(kuò)展提供的。在Catalina中目前還沒(méi)有完全實(shí)現(xiàn)這部分功能。<br>
<br>
國(guó)際化支持<br>
Catalina現(xiàn)在支持從Locale向字符集的映射,在ServletRequest中增加了一個(gè)新的方法setCharacterEncoding() ,在這一方面,還需要有個(gè)多的測(cè)試和功能增強(qiáng)。<br>
<br>
<br>
Web應(yīng)用的類裝載器<br>
Servlet規(guī)范草案中9.6.2節(jié)中定義了與Web應(yīng)用中類裝載器相關(guān)的需求和建議。這些需求在Catalina中被遵照?qǐng)?zhí)行。<br>
<br>
Servlet 2.3應(yīng)用程序分發(fā)描述符的DTD<br>
在Catalina中包括一個(gè)非正式的用于解析web.xml文件的DTD(catalina/src/conf/web_23.dtd)<br>
它將被正式發(fā)布的DTD所替代。<br>
<br>
<br>
JSP規(guī)范1.2<br>
JSP 對(duì)Include flush="false"的支持<br>
這個(gè)變化通過(guò)在標(biāo)準(zhǔn)或定制的標(biāo)記中嵌套使用<jsp:include>標(biāo)記,允許利用內(nèi)含的servlet進(jìn)行緩存、處理,并產(chǎn)生的輸出。這個(gè)變化取決于前述的對(duì)RequestDispatcher.include()的功能的增強(qiáng)功能。<br>
<br>
JSP頁(yè)面的XML視圖<br>
JSP1.2的實(shí)現(xiàn)要求輸入不僅要符合JSP語(yǔ)法,而且要符合XML語(yǔ)法。目前正在將Jasper的parser進(jìn)行轉(zhuǎn)換,使得其能接受任何一種類型的輸入。<br>
<br>
屬性編輯器的利用<br>
假如一個(gè)應(yīng)用對(duì)java類的一個(gè)特定屬性注冊(cè)了一個(gè)屬性編輯器(PropertyEditor),那么這個(gè)屬性編輯器的setAsText()方法將用于將文本格式的屬性(比如request對(duì)象的一個(gè)參數(shù))轉(zhuǎn)換為該屬性的內(nèi)部表示。假如沒(méi)有定義屬性編輯器,那么就采用前述的缺省屬性編輯器進(jìn)行轉(zhuǎn)換。<br>
<br>
定制標(biāo)記庫(kù)驗(yàn)證頁(yè)面的合法性<br>
在定制標(biāo)記庫(kù)中增加了一個(gè)新的編譯階段用于檢查頁(yè)面的XML視圖,如果檢測(cè)到錯(cuò)誤,就拋出一個(gè)轉(zhuǎn)換時(shí)異常。在這當(dāng)中,可用于驗(yàn)證:<br>
- 從語(yǔ)義上不能被TLD中定義的信息驗(yàn)證的嵌套定制標(biāo)記<br>
- 誤用或?yàn)E用JSP中定制標(biāo)記特性。比如,你可以用一個(gè)驗(yàn)證子禁止JSP使用Java語(yǔ)句塊。<br>
<br>
增強(qiáng)的迭代支持<br>
增強(qiáng)了的定制tag機(jī)制支持在不做內(nèi)容嵌套的前提下進(jìn)行迭代的能力。這將優(yōu)化這類非常常見的例子的性能,比如通過(guò)迭代來(lái)表示一個(gè)表格的處理結(jié)果,而不用顯式對(duì)表格中每一行進(jìn)行處理。<br>
<br>
定制tag庫(kù)能夠聲明應(yīng)用監(jiān)聽器<br>
一個(gè)定制的tag庫(kù)能夠利用servlet2.3中的新特性,聲明一個(gè)監(jiān)聽器,用于監(jiān)聽?wèi)?yīng)用程序相關(guān)的事件。<br>
<br>
附加的TLD元素<br>
在許多簡(jiǎn)單的例子中,聲明變量時(shí),采用附加的TLD元素可不用書寫TagExtraInfo類<br>
<br>
在Tag接口中增加resetCustomAttributes()方法<br>
通過(guò)由Servlet Container調(diào)用附加的方法,使得在循環(huán)調(diào)用一個(gè)tag的實(shí)例前調(diào)用該方法.<br>
<br>
<br>
(**轉(zhuǎn)摘請(qǐng)注明作者)
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -