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