Tomcat是apache的一個子項目,也是一個開源項目,主要是用于J2EE web容器,由于是一個開源項目,在學(xué)習(xí)與開發(fā)測試中經(jīng)常被用到(而目前商業(yè)最為經(jīng)常用到的web服務(wù)器是BEA WebLogic)。在開源項目中,鼎鼎大名的apache基金會大家肯定有所了解,網(wǎng)站鏈接:http://www.apache.org/,而旗下的Jakarta Project 主要包括了Tomcat、Alexanda等Java項目,有興趣者可看:http://jakarta.apache.org/??紤]到各位學(xué)習(xí)者的機器配置與學(xué)習(xí)成本問題,這里選了Tomcat作為我們學(xué)習(xí)與測試J2EE的環(huán)境
以下為一些基本配置:
一、先從網(wǎng)上下載tomcat,目前最新版本是5.57,下載地址是:http://apache.freelamp.com/jakarta/tomcat-5/v5.5.7/bin/jakarta-tomcat-5.5.7.zip,下載安裝完后,在安裝目錄下有以下目錄,主要介紹一下conf、common、webapps:
如果你現(xiàn)在等不急了,就想體驗一下tomcat的魅力的話,把你的網(wǎng)頁拷到webapps/ROOT目錄下,然后再通過瀏覽器訪問即可,默認如下格式:http://localhost:8080/<你的網(wǎng)頁>
1)webapps文件夾主要用于web應(yīng)用程序部署,比如你可以把你的應(yīng)用程序包,如war文件拷到該目錄下,容器會自動部署。
2)conf文件夾下主要是放置tomcat的服務(wù)器的相關(guān)配置文件
3)common文件夾主要是對容器全局變量的文件放置地方,如common/lib下就是放置一些需要全文配置的文件包。
二、j2ee的相關(guān)部署規(guī)范:
一般來說作為一個符合規(guī)范的web程序,會包括以下文件夾和文件:/WEB-INF/(主要是放置一些配置文件與不希望外部程序訪問的隱私文件),在網(wǎng)絡(luò)上是不允許訪問該文件夾的,如當(dāng)你輸入以下http://localhost:8080/WEB-INF/的話就會出現(xiàn)錯誤。
在WEB-INF文件夾下有一個web.xml文件,這是對當(dāng)前應(yīng)用程序的相關(guān)設(shè)置,資源尋找等,/WEN-INF/文件夾下有個classes子文件夾,該文件夾是應(yīng)用程序的根路徑(等于是classpath的路徑),/WEN-INF下還要有個lib文件夾,主要是放置需要引入的包,應(yīng)用程序?qū)氲陌葟倪@里開始尋找,其次到容器的全局路徑下$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服務(wù)器的配置:
以下是一些常見的設(shè)置,http端口設(shè)置,找到以下:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
把8080端口改為你喜歡使用的端口,如常見的80,以后你就可以利用該端口進行訪問你的網(wǎng)站了:http://localhost:80 期中80是默認的,可以不寫,其他的一下配置,可以參觀相關(guān)的內(nèi)容,入門就是這么簡單。
web.xml為servlet的一些相關(guān)配置,可以參照一下規(guī)范??梢钥次覍懙钠渌恼隆?br> 繼續(xù)說一下server.xml文件的設(shè)置,
找到以下:
<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代表是網(wǎng)絡(luò)訪問的上下文路徑,reloadable表示可以在運行時在classes與lib文件夾下自動加載類包,docBase屬性表示你的應(yīng)用程序的路徑,在windows在如:docBase="E:\Sun\axis",workDir表示是緩存文件的放置地點,可以方便跨平臺移植時不用重編譯。這樣,你的應(yīng)用程序就可以放到硬盤上的任意地方了。還有一個方法可以做到這點(推薦):編寫一個xml文件,然后放到tomcat目錄/conf/Catalina/<相應(yīng)的網(wǎng)站>/目錄下,如:現(xiàn)在我有個應(yīng)用程序ACMEWeb,我編了一個文件ACMEWeb.xml內(nèi)容如下:
<Context path="/ACMEWeb" reloadable="true" docBase="E:\eclipseproject\ACMEWeb" workDir="E:\eclipseproject\ACMEWeb\work" />
我把它放到了tomcat目錄/conf/Cataline/localhost下,在瀏覽器打開http://localhost/ACMEWeb 就會轉(zhuǎn)向我放在E:\eclipseproject\ACMEWeb下的程序了
四、關(guān)于taglib的修改:
(1)servlet-2.4之后,web.xml文件就有了一點修改。首先是聲明命名空間:
<web-app xmlns=" xmlns:xsi=" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee version="2.4"></web-app>
(2)其次是taglib,與傳統(tǒng)的有所改變,對jsp的配置都被放置到<jsp-config>元素里了。可以使用Altova xmlspy打開web.xml文件,使用taglib的話,按照以下配置:
<jsp-config>
<taglib>
<taglib-uri>oscache</taglib-uri>
<taglib-location>/WEB-INF/oscache.tld</taglib-location>
</taglib>
</jsp-config>