tomcat下各文件夾的作用
摘要
本文介紹Tomcat下面的各個(gè)文件夾,以及其中的主要文件的作用。
目錄結(jié)構(gòu)及用途
目錄
用途
bin
包含啟動(dòng)/關(guān)閉腳本
conf
包含不同的配置文件,包括 server.xml(Tomcat的主要配置文件)和為不同的Tomcat配置的web應(yīng)用設(shè)置缺省值的文件web.xml
doc
包含各種Tomcat文檔
lib
包含Tomcat使用的jar文件.unix平臺(tái)此目錄下的任何文件都被加到Tomcat的classpath中
Logs
存放Tomcat的日志文件
/server
包含3個(gè)子目錄:classes、lib和webapps
src
ServletAPI源文件.先別高興,這些只有些必須在Servlet容器內(nèi)實(shí)現(xiàn)的空接口和抽象類
webapp
包含web項(xiàng)目示例,當(dāng)發(fā)布web應(yīng)用時(shí),默認(rèn)情況下把web文件夾放于此目錄下
work
Tomcat自動(dòng)生成,放置Tomcat運(yùn)行時(shí)的臨時(shí)文件(如編譯后的JSP文件).如在Tomcat運(yùn)行時(shí)刪除此目錄.JSP頁面將不能運(yùn)行.[ jsp生成的sevlet放在此目錄下]
classes
你可以創(chuàng)建此目錄來添加一些附加的類到類路徑中.任何你加到此目錄中的類都可在Tomcat的類路徑中找到自身.
Common/bin
存在Tomcat服務(wù)器及所有的web應(yīng)用程序可以訪問的JAR文件
Server/bin
存在Tomcat服務(wù)器運(yùn)行所需的各種JAR文件。
Share/Bin
存在所有的web應(yīng)用程序可以訪問的JAR文件(不能被tomcat訪問)
/server/webapps
存放tomcat兩個(gè)自帶Web應(yīng)用 admin應(yīng)用和manager應(yīng)用
從表2 中可以看到,Server/bin,Share/Bin,Common/bin目錄下都可以放JAR,他們的區(qū)別在于:
在Server/bin目錄下的JAR文件只能被Tomcat服務(wù)器訪問。
在Share/Bin,目錄下的JAR文件可以被所有的web應(yīng)用程序訪問,但不能被Tomcat服務(wù)器訪問。
在Common/bin目錄下的JAR文件可以被Tomcat服務(wù)器和所有的web應(yīng)用程序訪問。
此外,對(duì)于后面介紹Java Web應(yīng)用程序,在它的WEB-INF目錄下,也可以建立lib子目錄,在lib子目錄下可以存放各種JAR文件,這些JAR文件只能被當(dāng)前WEB應(yīng)用程序所訪問。
Java Web應(yīng)用由一組靜態(tài)HTML頁、Servlet、JSP和其他相關(guān)的class組成。每種組件在Web應(yīng)用中都有固定的存放目錄。Web應(yīng)用的配置信息存放在web.xml文件中。在發(fā)布某些組件(如Servlet)時(shí),必須在web.xml文件中添加相應(yīng)的配置信息。
在Tomcat應(yīng)用服務(wù)器上發(fā)布Web應(yīng)用程序,應(yīng)該在/webapps目錄下創(chuàng)建這個(gè)Web應(yīng)用的目錄結(jié)構(gòu)。
Web應(yīng)用的目錄結(jié)構(gòu)
目 錄
描 述
/helloapp
Web應(yīng)用的根目錄,所有的JSP和HTML文件都存放于此目錄下
/helloapp/WEB-INF
存放Web應(yīng)用的發(fā)布描述文件web.xml
/helloapp/WEB-INF/classes
存放各種class文件,Servlet類文件也放于此目錄下
/helloapp/WEB-INF/lib
存放Web應(yīng)用所需的各種JAR文件。例如,在這個(gè)目錄下,可以存放JDBC驅(qū)動(dòng)程序的JAR文件。
注:在classes以及l(fā)ib子目錄下,都可以存放Java類文件。在運(yùn)行過程中,Tomcat的類裝載器先裝載classes目錄下的類,再裝載lib.
Tomcat的配置文件
Tomcat的配置基于兩個(gè)配置文件:
1.server.xml - Tomcat的全局配置文件 ? ? ? ? ? ? ? 2.web.xml - 在Tomcat中配置不同的關(guān)系環(huán)境
server.xml
server.xml是Tomcat的主配置文件.完成兩個(gè)目標(biāo):
1 提供Tomcat組件的初始配置.
2 說明Tomcat的結(jié)構(gòu),含義,使得Tomcat通過實(shí)例化組件完成起動(dòng)及構(gòu)建自身, 如在server.xml所指定的
server.xml種的重要元素:
元素及其描述
Server
server.xml文件中最重要的元素.Server定義了一個(gè)Tomcat服務(wù)器.一般你不用對(duì)他擔(dān)心太多.Server元素能包含Logger和ContextManager元素類型
Logger
此元素定義一個(gè)Logger對(duì)象,每個(gè)Logger都有一個(gè)名字去標(biāo)識(shí),也有一個(gè)紀(jì)錄Logger的輸出和冗余級(jí)別(描述此日志級(jí)別)和包含日志文件的路徑.通常有servlet的Logger(ServletContext.log()處),JSP和Tomcat運(yùn)行時(shí)的Logger.
ContextManager
ContextManager說明一套ContextInterceptor, RequestInterceptor , Context和他們的Connectors的配置及結(jié)構(gòu).ContextManager有幾個(gè)隨同提供的特性:
1. 用來紀(jì)錄調(diào)試信息的調(diào)試級(jí)別
2. webapps/,conf/,logs/和所有已定義的環(huán)境的基本位置.用來使Tomcat可以在TOMCAT_HOME外的其他目錄啟動(dòng).
3. 工作目錄的名字
ContextInterceptor&RequestInterceptor
這些偵聽器(interceptors)偵聽具體發(fā)生在ContextManager中的事件.例如,ContextInterceptor偵聽 Tomcat的啟動(dòng)及終止事件,RequestInterceptor監(jiān)視在它服務(wù)過程中用戶請(qǐng)求需要通過的不同階段.Tomcat的管理員不必知道太多關(guān)于偵聽器的知識(shí);另外,開發(fā)者應(yīng)該知道這是如何在Tomcat中實(shí)現(xiàn)一個(gè)”全局”型的操作(例如安全性及每個(gè)請(qǐng)求日志)
Connector
Connector表示一個(gè)到用戶的聯(lián)接,不管是通過web服務(wù)器或直接到用戶瀏覽器(在一個(gè)獨(dú)立配置中).Connector負(fù)責(zé)管理Tomcat的工作線程和讀/寫 連接到不同用戶的端口的請(qǐng)求/響應(yīng).Connector的配置包含如下信息:
1.句柄類
2.句柄監(jiān)聽的TCP/IP端口
3.句柄服務(wù)器端口的TCP/IP的backlog.
Context
每個(gè)Context提供一個(gè)指向你放置你Web項(xiàng)目的Tomcat的下屬目錄。每個(gè)Context包含如下配置:
1. Context放置的路徑,可以是與ContextManager主目錄相關(guān)的路徑.
2.紀(jì)錄調(diào)試信息的調(diào)試級(jí)別
3.可重載的標(biāo)志.開發(fā)Servlet時(shí),重載更改后的Servlet,這是一個(gè)非常便利的特性,你可以調(diào)試或用Tomcat測試新代碼而不用停止或重新啟動(dòng)Tomcat.要打開重載,把reloadable設(shè)為真即可.這雖花費(fèi)時(shí)間但可檢測所發(fā)生的變化;更重要的事,鑒于,在一個(gè)裝載類對(duì)象裝入一個(gè)新的 servlet時(shí),類裝載觸發(fā)器可能會(huì)擲出一些錯(cuò)誤.為避免這些問題,你可以設(shè)置可重載為假,這將停止重載功能.
web.xml
? ? Tomcat可以讓用戶通過將缺省的web.xml放入conf目錄中來定義所有關(guān)系環(huán)境的web.xml的缺省值.建立一個(gè)新的關(guān)系環(huán)境時(shí), Tomcat使用缺省的web.xml文件作為基本設(shè)置和應(yīng)用項(xiàng)目特定的web.xml(放在應(yīng)用項(xiàng)目的WEB-INF/web.xml文件)來覆蓋這些缺省值.
?