一、TomCat介紹
Apache公司的服務器,是JavaEE規范中Servlet/JSP規范的實現者,是一個輕量級服務器,開源免費。可稱為Web容器,或者說是Servlet容器。
*JCP:Java Community Process,Java審核社區,是個開放的國際組織,規范監督Java的發展。通過JCP審核的才能成為Java規范。JCP的創造者為SUN公司。
*SDK:是Software Development Kit 一般指軟件開發包,可以包括函數庫、編譯程序等。
*JRE:Java Runtime Enviroment是指Java的運行環境,是面向Java程序的使用者,而不是開發者。 包含了java虛擬機,java基礎類庫。
*JDK:Java Development Kit,JDK是面向開發人員使用的SDK,它提供了Java的開發環境和運行環境。包含了JRE,同時還包含了編譯java源碼的編譯器javac,還包含了很多java程序調試和分析的工具:jconsole,jvisualvm等工具軟件。
二、安裝與配置
1. https://tomcat.apache.org/download-90.cgi tomcat9版本下載core。
2. TomCat5以及以前的版本,要求還要安裝JDK,但TomCat6以及之后的版本只需要安裝JRE。在系統環境變量中設置“Java_HOME”為jdk的安裝路徑,並將其bin目錄添加到path變量中。(CATALINA_HOME在startup.bat中已經配置過)。
(1)查看Java版本信息:
java -version
(2)查看Java安裝路徑:
java -verbose
結果是/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents
(3)配置環境變量:
sudo vi /etc/profile
末尾輸入:
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home"
CLASS_PATH ="$JAVA_HOME/lib"
PATH=".;$PATH:$JAVA_HOME/bin"
export JAVA_HOME
(4)更新:
source /etc/profile
(5)查看環境變量:
echo $JAVA_HOME
(6)運行Java相關命令:
比如javadoc:
3. 在bin目錄下找到startup.sh,./startup.sh啟動tomcat服務器。
4. 通過瀏覽器訪問localhost:8080,能看到tomcat的網頁。
5. 在bin目錄下找到shutdown.sh,./shutdown.sh關閉tomcat。
三、解析server.xml
在tomcat安裝目錄下的/conf中,有個server.xml文件,代表服務器的配置文件。
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port(瀏覽器所輸入的端口)="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase(相對於tomcat安裝目錄的主機基礎目錄,若放在其他地方也可以直接放絕對路徑)="webapps" unpackWARs(自動解壓war包)="true" autoDeploy(自動發布到服務器)="true">
<Context path(虛擬目錄)="/xxx" docBase="d:/course/myweb">
</Context>
</Host>
</Engine>
</Service>
</Server>
其中<Service>標簽可以有多個,每個的name必須不同,代表不同的服務。如果瀏覽器需要使用某個服務,則需要連接器Connector。
關於這幾個組件的關系可以描述為:
(1)一個Server可以包含多個Service;
(2)瀏覽器訪問一個Server中的某個Service可以通過不同類型(不同協議)的Connector;
(3)一個Service中只有一個Engine;
(4)一個Engine中可以包含多個Host(虛擬主機);
(5)一個虛擬主機可以包含多個Context(應用)。
* 租賃服務器:將自己申請的域名放到租賃的服務器(其實也就是一個虛擬主機)上。
四、創建虛擬目錄
在web項目的規范目錄中,項目文件應該放在tomcat安裝目錄下的/webapps中,當然也可以不放在這里。
方法一:在server.xml中配置,需要重啟服務器
(1)web項目“myweb”被放在d:/course/目錄下,其中有個hello.html文件:
(2)在server.xml中配置Context(應用):
(3)重啟服務器
(4)瀏覽器中訪問這個主機下面的這個應用:
方法二:在Engine下配置,無需重啟服務器
(1)web項目“myweb2”被放在d:/course/目錄下,這個項目下有一個文件hello.html:
(2)在tomcat安裝目錄\conf\Catalina\localhost\下面新建一個ooo.xml文件,如圖:
(3)在瀏覽器中訪問這個hello.html:
五、創建虛擬主機
1. 一些基本概念
(1)域名:www.baidu.com
(2)IP:119.75.217.109
(3)域名解析服務器DNS:提供將域名與IP地址進行映射服務的服務器,一個IP地址可以對應幾個不同域名
* 域名解析過程:本機文件-》網絡服務供應商的DNS中找-》上一級-》。。。-》全球的DNS
2. 定義虛擬主機
(1)在tomcat安裝目錄下,新建目錄“mywebapps”。項目“myweb”放在目錄mywebapps/下,在項目中新建hello.html:
(2)在server.xml文件中,<Engine>標簽下定義虛擬主機<Host>:
<Engine name="Catalina" defaultHost="localhost"(當使用IP地址來訪問,默認訪問localhost主機)>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
</Host>
<Host name="www.reyco.com" appBase="mywebapps" unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
(3)重啟服務器
(4)發現在tomcat安裝目錄/conf/Catalina下面有了新建的虛擬主機www.reyco.com:
(5)在本機的域名解析hosts文件中添加:
(6)在瀏覽器中訪問www.reyco.com:8080/myweb/
六、修改默認端口號
七、制定虛擬主機的默認應用
比如輸入www.baidu.com時直接可以訪問到一個網頁,實際上是因為www.baidu.com這台虛擬主機指定了一個默認應用,打開就可以默認訪問。指定默認應用,將它的項目名改為“ROOT”即可。