tomcat
的目錄結構
? /bin?????????
存放啟動和關閉
tomcat
的腳本文件
? /conf????????
存放
tomcat
服務器的各種配置文件,最重要的是
server.xml
? /server??????
包含
3
個子目錄,
classes
、
lib
、
webapps
? /server/lib?
存放
tomcat
服務器所需的各種
JAR
文件(只能
tomcat
服務器訪問)
? /server/webapps?
存放
tomcat
自帶的兩個
web
應用,
admin
和
manager
應用
? /common/lib?
存放
tomcat
服務器及所有
web
應用都可以訪問的
JAR
文件
? /shared/lib?
存放所有
web
應用都可以訪問的
JAR
文件(
tomcat
服務器不能訪問)
? /logs????????
存放
tomcat
的日志文件
? /webapps????
當發布
web
應用時,默認情況下把
web
應用文件放于此目錄
? /work??????? tomcat 把由 JSP 生成的 Servlet 放于此目錄
Java web
組成
??
Java web
應用由一組靜態
HTML
頁、
Servlet
、
JSP
和其他相關的
class
組成。每種組件在
web
應用中都有固定的存放目錄。
web
應用的配置信息存放在
web.xml
文件中。在發布某些組件(如
Servlet
)時,必須在
web.xml
文件中添加相應的配置信息
web應用的目錄結構
??? web應用具有固定的目錄結構,比如開發一個名為helloapp的應用,在<CATALINA_HOME>/webapps目錄下創建這個目錄結構。
??? /helloapp????? web應用的根目錄,所有的JSP和HTML文件都存放于此目錄下
??? /helloapp/WEB-INF 存放web應用的發布描述文件web.xml
????/helloapp/WEB-INF/classes 存放各種class文件,Servlet類文件也放于此目錄
??? /helloapp/WEB-INF/lib??存放web應用所需的各種JAR文件,比如可以存放JDBC驅動程序的JAR文件
???tomcat的類裝載器先裝載classes目錄下的類,再裝載lib目錄下的類,如果兩個目錄下存在同名的類,classes目錄下的類具有優先權
在server.xml中加入<Context>元素
???
<Context>
元素是<CATALINA_HOME>/conf/server.xml中使用最頻繁的元素,它代表了運行在<Host>上的單個Web應用,一個<Host>中可以有多個<Context>元素,每個Web應用必須有唯一的URL路徑,path屬性設定。
??? <!--Define the default virtual host-->
??? <Hostname="localhost"debug="0"appBase="webapps"unpackWARs="true"autoDeploy="true">
??? ....
??? ....
??? <Contextpath="/helloapp"docBase="helloapp"debug="0"reloadable="true"/>
??? </Host>
???path屬性:指定訪問該web應用的URL入口
?? docBase:指定web應用的文件路徑,可以給絕對路徑,也可以給Host的appBase的相對路徑
?? reloadable:如果設置為true,tomcat服務器在運行狀態下會監視在WEB-INF/classes和lib目錄下class文件的改動,如果被更新,服務器會自動重新加載web應用
創建并發布WAR文件
??? 1>進入helloapp應用的根目錄<CATALINA_HOME>/webapps目錄下
??? 2>把整個Web應用打包為helloapp.war,命令為: jar cvf helloapp.war *.*(解壓參數為xvf)
??? 3>把helloapp.war文件復制到<CATALINA_HOME>/webapps目錄下
??? 4>刪除原來的helloapp整個目錄(一定要刪除整個目錄)
??? 5>啟動Tomcat服務器
??? 根據<CATALINA_HOME>/conf/server.xml里面Host的unpackWARs屬性,如果為true,則Tomcat啟動的時候會自動把war文件解壓,展開為開放式的目錄結構