?Tomcat是apache的一個子項目,也是一個開源項目,主要是用于J2EE web容器,由于是一個開源項目,在學習與開發測試中經常被用到,(而目前商業最為經常用到的web服務器是BEA WebLogic)。在開源項目中,鼎鼎大名的apache基金會大家肯定有所了解,網站鏈接:http://www.apache.org/,而旗下的Jakarta Project 主要包括了Tomcat、Alexanda等Java項目,有興趣者可看:http://jakarta.apache.org/。考慮到各位學習者的機器配置與學習成本問題,這里選了Tomcat作為我們學習與測試J2EE的環境
????? 以下為一些基本配置:
?一、先從網上下載tomcat,目前最新版本是5.57,下載地址是:http://apache.freelamp.com/jakarta/tomcat-5/v5.5.7/bin/jakarta-tomcat-5.5.7.zip,下載安裝完后,在安裝目錄下有以下目錄,主要介紹一下conf、common、webapps:
???? 如果你現在等不急了,就想體驗一下tomcat的魅力的話,把你的網頁拷到webapps/ROOT目錄下,然后再通過瀏覽器訪問即可,默認如下格式:http://localhost:8080/<你的網頁>
???? 1)webapps文件夾主要用于web應用程序部署,比如你可以把你的應用程序包,如war文件拷到該目錄下,容器會自動部署。
???? 2)conf文件夾下主要是放置tomcat的服務器的相關配置文件
???? 3)common文件夾主要是對容器全局變量的文件放置地方,如common/lib下就是放置一些需要全文配置的文件包。
二、j2ee的相關部署規范:
???? 一般來說作為一個符合規范的web程序,會包括以下文件夾和文件:/WEB-INF/(主要是放置一些配置文件與不希望外部程序訪問的隱私文件),在網絡上是不允許訪問該文件夾的,如當你輸入以下http://localhost:8080/WEB-INF/的話就會出現錯誤。
???? 在WEB-INF文件夾下有一個web.xml文件,這是對當前應用程序的相關設置,資源尋找等,/WEN-INF/文件夾下有個classes子文件夾,該文件夾是應用程序的根路徑(等于是classpath的路徑),/WEN-INF下還要有個lib文件夾,主要是放置需要引入的包,應用程序導入的包先從這里開始尋找,其次到容器的全局路徑下$TOMCAT_HOME/common/lib下尋找。
???? 以下是基本文件夾:
/tomcat
???? /common
?????????? /lib
?????????? /classes
??? /conf
??? /webapps
??????? /ROOT
????????????? web.xml???????????
????????????? /WEB-INF
??????????????????? /lib
??????????????????? /classes
??????? /你部署的程序包
????????????? web.xml???????????
????????????? /WEB-INF
??????????????????? /lib
??????????????????? /classes
三、容器的配置(server.xml)
??? 到主目錄/conf文件夾下server.xml文件是對web服務器的配置:
??? 以下是一些常見的設置,http端口設置,找到以下:
<Connector? port="8080"?? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
?????????????? enableLookups="false" redirectPort="8443" acceptCount="100"
?????????????? connectionTimeout="20000" disableUploadTimeout="true" />
??? 把8080端口改為你喜歡使用的端口,如常見的80,以后你就可以利用該端口進行訪問你的網站了:http://localhost:80 期中80是默認的,可以不寫,其他的一下配置,可以參觀相關的內容,入門就是這么簡單。
??? web.xml為servlet的一些相關配置,可以參照一下規范。可以看我寫的其他文章。
??? 繼續說一下server.xml文件的設置,
??? 找到以下:
?? <Host name="localhost" appBase="webapps"
?????? unpackWARs="true" autoDeploy="true"
?????? xmlValidation="false" xmlNamespaceAware="false">
???? ....
? </Host>
???? 在他們之間可以添加一個<Context>元素,如:<Context path="/axis" reloadable="true" docBase="axis"? workDir="webapps/axis/work"/>,其中屬性path代表是網絡訪問的上下文路徑,reloadable表示可以在運行時在classes與lib文件夾下自動加載類包,docBase屬性表示你的應用程序的路徑,在windows在如:docBase="E:\Sun\axis",workDir表示是緩存文件的放置地點,可以方便跨平臺移植時不用重編譯。這樣,你的應用程序就可以放到硬盤上的任意地方了。還有一個方法可以做到這點(推薦):編寫一個xml文件,然后放到tomcat目錄/conf/Catalina/<相應的網站>/目錄下,如:現在我有個應用程序ACMEWeb,我編了一個文件ACMEWeb.xml內容如下:
????? <Context path="/ACMEWeb" reloadable="true" docBase="E:\eclipseproject\ACMEWeb" workDir="E:\eclipseproject\ACMEWeb\work" />
????? 我把它放到了tomcat目錄/conf/Cataline/localhost下,在瀏覽器打開http://localhost/ACMEWeb 就會轉向我放在E:\eclipseproject\ACMEWeb下的程序了