Tomcat是一套開源軟件,它由Apache Software Foundation(ASF)開發(fā),用于實現(xiàn)Java Servlet和JavaServer Page (JSP)技術(shù)。
Tomcat是雄性貓的意思。在O‘Reilly的動物書中,貓已經(jīng)被用作另一本書的封面。所以,Tomcat的O'Reilly書的封皮是雪豹(Snow Leopard):
貓咪變雪豹
Tomcat的功能
Tomcat的核心是一個Servlet Container。Servlet是一類特殊的Java對象,它工作于Web服務(wù)器,用于分析請求(request),并生成相應(yīng)的回復(fù)(response)。Servlet Container用于啟動和調(diào)用Servlet對象。當(dāng)有HTTP請求進(jìn)入到Web服務(wù)器時,Servlet Container會查找相應(yīng)的Servlet,如果Servlet還不存在,那么Container需要創(chuàng)建對象。Servlet Container隨后將請求的內(nèi)容傳遞給Servlet,并將Servlet生成的回復(fù)發(fā)回給負(fù)責(zé)通信的服務(wù)器程序。
藍(lán)色為請求,紅色為回復(fù)
關(guān)于HTTP協(xié)議和Web服務(wù)器,可參閱協(xié)議森林 HTTP協(xié)議
Web服務(wù)器使用HTTP協(xié)議與客戶直接通信。Tomcat自身包含有Web服務(wù)器的功能。你也可以使用其他的Web服務(wù)器,比如Apache服務(wù)器,以提供更強(qiáng)大的Web服務(wù)器。
Tomcat還有一個重要的功能,是處理JSP文件。JSP可以看做是一個高層的Servlet,它最終會被翻譯成Servlet運行。我們用模板語言的方式來寫JSP文件,這類似于PHP的編寫方式。JSP文件中可以直接包含HTML元素。利用JSP技術(shù),我們可以從Servlet中分離出視圖,讓JSP來負(fù)責(zé)頁面的呈現(xiàn)方式,從而更好的實現(xiàn)MVC(Model-View-Control)。Tomcat中的Jasper模塊負(fù)責(zé)JSP的翻譯。
安裝Tomcat
Tomcat的安裝很簡單,下面以Linux/Mac為例介紹:
1. 前往Apache Tomcat的網(wǎng)站下載Tomcat
2. 解壓縮下載文件,文件夾中將包括如下內(nèi)容:
其中bin文件夾下有可執(zhí)行腳本:
startup.sh
shutdown.sh
分別用于啟動和關(guān)閉Tomcat。你可以將bin的路徑加入環(huán)境變量PATH,以便在命令行時,可以直接使用這兩個腳本。
啟動Tomcat后,你可以使用瀏覽器訪問下面的地址localhost:8080,來檢查Tomcat是否正常啟動。8080為Tomcat的默認(rèn)端口。如果一切順利,將看到下面的頁面:
需要注意的是,如果你的計算機(jī)上沒有Java Runtime,那么為了讓Tomcat順利運行,你需要安裝Java Runtime。
webapps
當(dāng)我們開發(fā)好了一個網(wǎng)絡(luò)app,比如一個網(wǎng)站test之后,可以將app放入到webapps文件夾中。webapps文件夾中有一個特殊的ROOT文件夾,這個文件夾中包含有默認(rèn)的網(wǎng)絡(luò)app。當(dāng)我們訪問服務(wù)器的根目錄時,比如localhost:8080/index.html時,實際上訪問的是ROOT文件夾中的index.html文件。
(安裝好Tomcat之后,ROOT文件夾中包含的是用于設(shè)置Tomcat的一個GUI頁面。如果直接更改ROOT的話,最好先備份原始的ROOT文件夾。)
我們在webapps中新建文件夾test,并放入下面的index.html文件:
Hello World!
在瀏覽器中,訪問localhost:8080/test/index.html,可以看到
服務(wù)器可以正常的提供靜態(tài)的/test/index.html文件。
除了html文件之外,app文件夾中還應(yīng)該包括與該app相關(guān)的其他文件,比如jsp文件,css文件,javascript文件,servlet的.class文件,model相關(guān)的.class文件等等。
我們在test文件夾中新建一個index.jsp文件:
Hello World!
<%= new java.util.Date() %>
在瀏覽器中訪問,得到如下頁面:
可以看到,JSP中的代碼調(diào)用了java.util.Date()方法,以顯示當(dāng)前時間。該jsp文件翻譯成Servlet,并由Servlet產(chǎn)生適當(dāng)?shù)幕貜?fù),傳遞給客戶端,即瀏覽器。翻譯和回復(fù)的過程都是由Tomcat自動完成的。
更改端口
Tomcat是利用一系列xml文件來進(jìn)行配置的。比如我們上面的端口為8080,F(xiàn)在,我們想更改Tomcat所監(jiān)聽的端口,可以在conf/web.xml中,找到Connector標(biāo)簽,以及標(biāo)簽的port屬性。原來的屬性值為8080,將其改為其他的值,并重新啟動Tomcat就可以了。
總結(jié)
Tomcat是實施Servlet與JSP的一套軟件。這里是對Tomcat的簡單介紹。
你可以在自己的電腦上迅速的建立起Tomcat主機(jī),并嘗試上面的內(nèi)容。