(4)嵌套組件
嵌套組件嵌套在容器內(nèi),為管理人員提供管理服務(wù)。它包括全局資源組件(The GlobalResources Component)、加載器組件(Loader Component)、日志組件(Logger Component)、管理器組件( Manager Component)、域組件(Realm Component)、資源組件(ResourcesComponent)和閥組件(Valve Component)。全局資源組件只能嵌套在Server組件中,用于配置Server中其他組件所用到的全局JNDI資源。加載器組件只能嵌套在上下文組件中,用于指定一個(gè)Web應(yīng)用程序的類加載器,并將該應(yīng)用程序的類和資源加載到內(nèi)存中。一般來說,Tomcat中默認(rèn)的類加載器就能滿足大部分的需求,因此開發(fā)人員沒有必要定制自己的類加載器。日志組件能借助Log4J來實(shí)現(xiàn)記錄日志。管理器組件是會(huì)話管理器,負(fù)責(zé)會(huì)話的創(chuàng)建和維護(hù)。域組件是一個(gè)包含用戶名、密碼和用戶角色的數(shù)據(jù)庫。角色與UNIX的group類似。域的不同實(shí)現(xiàn)允許將Catalina集成到認(rèn)證信息已經(jīng)被創(chuàng)建和維護(hù)的環(huán)境中,然后利用這些信息來實(shí)現(xiàn)容器管理的安全性。在任何組件(如引擎、主機(jī)或者上下文組件)中都可以嵌套域組件。另外,引擎或者主機(jī)的域會(huì)自動(dòng)被低層次的容器集成,除非被明確覆蓋。資源組件只在上下文組件中支持,它代表的是Web應(yīng)用程序中的靜態(tài)資源,以及它們被允許存放的格式,例如壓縮文件等。閥組件用于在請(qǐng)求到達(dá)目的之前,截取該請(qǐng)求,并處理它。有點(diǎn)類似于Servlet規(guī)范中定義的過濾器。它是Tomcat專有的、目前還不能用于其他的Servlet/JS容器。閥組件可以嵌入到其他組件中,如引擎、主機(jī)和上下文組件。閥組件通常用于記錄請(qǐng)求、客戶端IP地址,以及服務(wù)器端利用率信息,這種技術(shù)被稱為請(qǐng)求轉(zhuǎn)儲(chǔ)( Request Dumping)。請(qǐng)求轉(zhuǎn)儲(chǔ)閥記錄HTTP頭的信息和Cookies信息。響應(yīng)轉(zhuǎn)儲(chǔ)閥記錄響應(yīng)HTTP頭和Cookies信息。閥是可重用的組件,能按照用戶的需求增刪。