Tomcat
tomcat6支持servlet2.5
tomcat7支持servlet3.0
1. 啟動(dòng)關(guān)閉tomcat
? 需要先配置JAVA_HOME
? * 雙擊%CATALANA_HOME%\bin\startup.bat
? * 雙擊%CATALANA_HOME%\bin\shutdown.bat
訪問服務(wù)器:
http://localhost:8080/index.jsp
? 因?yàn)榉?wù)器在本機(jī)上,所以主機(jī)名為localhost,表示本機(jī)
? tomcat的默認(rèn)端口為8080
? index.jsp是主頁
2. 修改端口號(hào)
? * 修改端口號(hào),%CATALANA_HOME%\conf\server.xml,修改<Connector port="8080">,把8080修改了即可。
? * http協(xié)議默認(rèn)端口為80,也就是說http://localhost,等同與http://localhost:80
? 如果把Tomcat端口號(hào)修改成80,那么訪問服務(wù)器就可以無需再給出端口號(hào)。
3. tomcat目錄結(jié)構(gòu)
* bin:二進(jìn)制可執(zhí)行文件,例如startup.bat和shutdown.bat
* conf:配置文件,例如:server.xml、context.xml、web.xml、tomcatusers.xml
* lib:tomcat所需jar包
* logs:日志文件
* temp:存放tomcat運(yùn)行時(shí)產(chǎn)生的臨時(shí)文件,當(dāng)tomcat關(guān)閉后,這個(gè)目錄中的文件可以刪除
* webapps:這個(gè)目錄下的每個(gè)文件夾對應(yīng)一個(gè)JavaWeb應(yīng)用程序
* work:webapps下的應(yīng)用程序在運(yùn)行時(shí)會(huì)自動(dòng)生成文件,就在work目錄下。work目錄刪除了也沒問題,但再次運(yùn)行應(yīng)用程序還要再生成work目錄和文件。
4. 創(chuàng)建JavaWeb目錄:hello
* 在webapps目錄下創(chuàng)建一個(gè)hello目錄,hello目錄就是項(xiàng)目目錄了;
* 在hello目錄下創(chuàng)建WEB-INF
* 在WEB-INF下創(chuàng)建web.xml
* 在WEB-INF下創(chuàng)建classes目錄
* 在WEB-INF下創(chuàng)建lib目錄
* 在hello目錄下創(chuàng)建index.html
在web.xml文件中添加如下內(nèi)容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
??? xmlns="
http://java.sun.com/xml/ns/javaee"
??? xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
??? xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
???
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>
</web-app>
在index.html中添加如下內(nèi)容:
<html>
? <head><title>index.html</title></head>
? <body>
??? <h1>hello主頁</h1>
? </body>
</html>
啟動(dòng)tomcat,打開客戶端訪問http://localhost:8080/hello/index.html
===================================
配置外部應(yīng)用
外部應(yīng)用既是把應(yīng)用程序不放到Tomcat的wabapps目錄下!而已放在外面,例如:F:/hello
1. 在conf/server.xml下配置,指定外部應(yīng)用的路徑。
<Host name="localhost" appBase="webapps"
????? unpackWARs="true" autoDeploy="true">
????? <Context path="itcast_hello" docBase="F:/hello"/>
</Host>
? * 在<Host>元素下添加<Context>元素,path為URL訪問路徑,docBase為外部應(yīng)用的目錄。
? * 在瀏覽器地址欄中訪問:
http://localhost:8080/itcast_hello/index.html
2. 在conf/catalana/localhost下添加配置文件,指定外部應(yīng)用路徑
? * 在conf/catalana/localhost目錄下創(chuàng)建itcast_hello.xml文件,其中itcast_hello就是URL訪問路徑
? * 在itcast_hello.xml文件中添加:<Context docBase="F:/hello"/>,docBase指定外部應(yīng)用的目錄。
3. 缺省web應(yīng)用
? * 在webapps目錄下有一個(gè)ROOT目錄,它是缺省web應(yīng)用,訪問這個(gè)應(yīng)用的路徑:
http://localhost:8080/index.jsp
? * 如果把web應(yīng)用的內(nèi)部放到webapps/ROOT下,訪問URL路徑中不用給出應(yīng)用名稱。
4. 配置虛擬主機(jī)
? 希望:
http://www.itcast.cn訪問web應(yīng)用。
? * 這需要把域名http://www.itcast.cn映射成IP地址:127.0.0.1
? * 需要把tomcat端口號(hào)修改為80
? * 需要在server.xml中配置主機(jī),并指定主機(jī)的應(yīng)用目錄
? * 在應(yīng)用目錄中添加名為ROOT的web應(yīng)用。
? 1). 找到C:\WINDOWS\system32\drivers\etc\hosts文件,添加127.0.0.1
http://www.itcast.cn
? 2). 在conf/server.xml中修改端口為80
? 3). 在conf/server.xml中添加<Host>元素
<Host name="www.itcast.cn" appBase="F:/myapps" unpackWARs="true" autoDeploy="true">
</Host>
??? * name:指定該主機(jī)域名為www.itcast.cn
??? * appBase:指定該主機(jī)的應(yīng)用目錄為F:/myapps
? 4). 在F:/myapps下創(chuàng)建名為ROOT的web應(yīng)用。
? 訪問:
http://www.itcast.cn/index.html
? 其中
www.itcast.cn
在本機(jī)上會(huì)被解析為127.0.0.1,但其他電腦訪問時(shí)無效。
本文摘自 傳智播客的視頻《史上最全面的JavaWeb視頻教程_tomcat與web程序結(jié)構(gòu)與Http協(xié)議》筆記
?
?
------------------------------另一筆記-------------------------------------
1 Tomcat概述
Tomcat服務(wù)器由Apache提供,開源免費(fèi)。由于Sun和其他公司參與到了Tomcat的開發(fā)中,所以最新的JSP/Servlet規(guī)范總是能在Tomcat中體現(xiàn)出來。當(dāng)前最新版本是Tomcat8,我們課程中使用Tomcat7。Tomcat7支持Servlet3.0,而Tomcat6只支持Servlet2.5!
2 安裝、啟動(dòng)、配置Tomcat
下載Tomcat可以到 http://tomcat.apache.org 下載。
Tomcat分為安裝版和解壓版:
l 安裝版:一臺(tái)電腦上只能安裝一個(gè)Tomcat;
l 解壓版:無需安裝,解壓即可用,解壓多少份都可以,所以我們選擇解壓版。
2.1 Tomcat目錄結(jié)構(gòu)
安裝版Tomcat的安裝過程請參考day03_res/Tomcat安裝.doc文件。
把解壓版Tomcat解壓到一個(gè)沒有中文,沒有空格的路徑中即可,建議路徑不要太深,因?yàn)槲覀冃枰?jīng)常進(jìn)入Tomcat安裝目錄。例如:F:\apache-tomcat-7.0.42
2.2 啟動(dòng)和關(guān)閉Tomcat
在啟動(dòng)Tomcat之前,我們必須要配置環(huán)境變量:
l JAVA_HOME:必須先配置JAVA_HOME,因?yàn)門omcat啟動(dòng)需要使用JDK;
l CATALANA_HOME:如果是安裝版,那么還需要配置這個(gè)變量,這個(gè)變量用來指定Tomcat的安裝路徑,例如:F:\apache-tomcat-7.0.42。
l 啟動(dòng):進(jìn)入%CATALANA_HOME%\bin目錄,找到 startup.bat [c1] ,雙擊即可;
l 關(guān)閉:進(jìn)入%CATALANA_HOME%\bin目錄,找到 shutdown.bat [c2] ,雙擊即可;
startup.bat會(huì)調(diào)用catalina.bat,而catalina.bat會(huì)調(diào)用setclasspath.bat,setclasspath.bat會(huì)使用JAVA_HOME環(huán)境變量,所以我們必須在啟動(dòng)Tomcat之前把JAVA_HOME配置正確。
啟動(dòng)問題:
點(diǎn)擊startup.bat后窗口一閃即消失:檢查JAVA_HOME環(huán)境變量配置是否正確;
2.3 進(jìn)入Tomcat主頁
訪問:http://localhost:8080
2.4 配置端口號(hào)
打開%CATALANA_HOME%\conf\server.xml文件:
http默認(rèn)端口號(hào)為80,也就是說在URL中不給出端口號(hào)時(shí)就表示使用80端口。當(dāng)然你也可以修改為其它端口號(hào)。
當(dāng)把端口號(hào)修改為80后,在瀏覽器中只需要輸入: http://localhost 就可以訪問Tomcat主頁了。
2.5 Tomcat的目錄結(jié)構(gòu)
bin :該目錄下存放的是二進(jìn)制可執(zhí)行文件,如果是安裝版,那么這個(gè)目錄下會(huì)有兩個(gè)exe文件:tomcat6.exe、tomcat6w.exe,前者是在控制臺(tái)下啟動(dòng)Tomcat,后者是彈出UGI窗口啟動(dòng)Tomcat;如果是解壓版,那么會(huì)有startup.bat和shutdown.bat文件,startup.bat用來啟動(dòng)Tomcat,但需要先配置JAVA_HOME環(huán)境變量才能啟動(dòng),shutdawn.bat用來停止Tomcat;
conf :這是一個(gè)非常非常重要的目錄,這個(gè)目錄下有四個(gè)最為重要的文件:
server.xml: 配置整個(gè)服務(wù)器信息。例如修改端口號(hào),添加虛擬主機(jī)等;下面會(huì)詳細(xì)介紹這個(gè)文件;
tomcatusers.xml :存儲(chǔ)tomcat用戶的文件,這里保存的是tomcat的用戶名及密碼,以及用戶的角色信息。可以按著該文件中的注釋信息添加tomcat用戶,然后就可以在Tomcat主頁中進(jìn)入Tomcat Manager頁面了;
web.xml :部署描述符文件,這個(gè)文件中注冊了很多MIME類型,即文檔類型。這些MIME類型是客戶端與服務(wù)器之間說明文檔類型的,如用戶請求一個(gè)html網(wǎng)頁,那么服務(wù)器還會(huì)告訴客戶端瀏覽器響應(yīng)的文檔是text/html類型的,這就是一個(gè)MIME類型??蛻舳藶g覽器通過這個(gè)MIME類型就知道如何處理它了。當(dāng)然是在瀏覽器中顯示這個(gè)html文件了。但如果服務(wù)器響應(yīng)的是一個(gè)exe文件,那么瀏覽器就不可能顯示它,而是應(yīng)該彈出下載窗口才對。MIME就是用來說明文檔的內(nèi)容是什么類型的!
context.xml :對所有應(yīng)用的統(tǒng)一配置,通常我們不會(huì)去配置它。
lib :Tomcat的類庫,里面是一大堆jar文件。如果需要添加Tomcat依賴的jar文件,可以把它放到這個(gè)目錄中,當(dāng)然也可以把應(yīng)用依賴的jar文件放到這個(gè)目錄中,這個(gè)目錄中的jar所有項(xiàng)目都可以共享之,但這樣你的應(yīng)用放到其他Tomcat下時(shí)就不能再共享這個(gè)目錄下的Jar包了,所以建議只把Tomcat需要的Jar包放到這個(gè)目錄下;
logs :這個(gè)目錄中都是日志文件,記錄了Tomcat啟動(dòng)和關(guān)閉的信息,如果啟動(dòng)Tomcat時(shí)有錯(cuò)誤,那么異常也會(huì)記錄在日志文件中。
temp :存放Tomcat的臨時(shí)文件,這個(gè)目錄下的東西可以在停止Tomcat后刪除!
webapps: 存放web項(xiàng)目的目錄,其中每個(gè)文件夾都是一個(gè)項(xiàng)目;如果這個(gè)目錄下已經(jīng)存在了目錄,那么都是tomcat自帶的。項(xiàng)目。其中ROOT是一個(gè)特殊的項(xiàng)目,在地址欄中沒有給出項(xiàng)目目錄時(shí),對應(yīng)的就是ROOT項(xiàng)目。 http://localhost:8080/examples,進(jìn)入示例項(xiàng)目。其中examples 就是項(xiàng)目名,即文件夾的名字。
work: 運(yùn)行時(shí)生成的文件,最終運(yùn)行的文件都在這里。通過webapps中的項(xiàng)目生成的!可以把這個(gè)目錄下的內(nèi)容刪除,再次運(yùn)行時(shí)會(huì)生再次生成work目錄。當(dāng)客戶端用戶訪問一個(gè)JSP文件時(shí),Tomcat會(huì)通過JSP生成Java文件,然后再編譯Java文件生成class文件,生成的java和class文件都會(huì)存放到這個(gè)目錄下。
LICENSE :許可證。
NOTICE :說明文件。
---------------------------------------------------------------------------------------
?
?
Web應(yīng)用(重點(diǎn))
靜態(tài)網(wǎng)站:
在webapps目錄下創(chuàng)建一個(gè)目錄(命名必須不包含中文和空格),這個(gè)目錄稱之為項(xiàng)目目錄;
在項(xiàng)目目錄下創(chuàng)建一個(gè)html文件;
動(dòng)態(tài)網(wǎng)站:
在webpass目錄下創(chuàng)建一個(gè)項(xiàng)目目錄;
在項(xiàng)目目錄下創(chuàng)建如下內(nèi)容:
WEB-INF目錄;
¨ 在WEB-INF目錄下創(chuàng)建web.xml文件 [c1]
創(chuàng)建靜態(tài)或動(dòng)態(tài)頁面
1 創(chuàng)建靜態(tài)應(yīng)用
l 在webapps下創(chuàng)建一個(gè)hello目錄;
l 在webapps\hello\下創(chuàng)建index.html;
l 啟動(dòng)tomcat;
l 打開瀏覽器訪問http://localhost:8080/hello/index.html
index.html
<html> <head> <title>hello</title> </head> <body> <h1>Hello World!</h1> </body> </html> |
2 創(chuàng)建動(dòng)態(tài)應(yīng)用
l 在webapps下創(chuàng)建hello1目錄;
l 在webapps\hello1\下創(chuàng)建WEB-INF目錄;
l 在webapps\hello1\WEB-INF\下創(chuàng)建web.xml;
l 在webapps\hello1\下創(chuàng)建index.html。
l 打開瀏覽器訪問http://localhost:8080/hello/index.html
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> </web-app> |
完整的Web應(yīng)用還需要在WEB-INF目錄下創(chuàng)建:
l classes;
l lib目錄;
webapps
|- hello
|-index.html
|-WEB-INF
|-web.xml
|-classes
|-lib
l hello:應(yīng)用目錄,hello就是應(yīng)用的名稱;
l index.html:應(yīng)用資源。應(yīng)用下可以有多個(gè)資源,例如css、js、html、jsp等,也可以把資源放到文件夾中,例如:hello\html\index.html,這時(shí)訪問URL為:http://localhost:8080/hello/html/index.html;
l WEB-INF:這個(gè)目錄名稱必須是大寫,這個(gè)目錄下的東西是無法通過瀏覽器直接訪問的,也就是說放到這里的東西是安全的;
l web.xml:應(yīng)用程序的部署描述符文件,可以在該文件中對應(yīng)用進(jìn)行配置,例如配置應(yīng)用的首頁:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
l classes:存放class文件的目錄;
l lib:存放jar包的目錄;
3 配置外部應(yīng)用(了解)
原來我們的項(xiàng)目放到webapps下,現(xiàn)在我放到外面,也希望tomcat可以找到它!
也可以把應(yīng)用放到Tomcat之外,這就是外部應(yīng)用了。例如我們把上面寫的hello應(yīng)用從webapps目錄中剪切到C盤下,即C:/hello?,F(xiàn)在hello這個(gè)Web應(yīng)用已經(jīng)不在Tomcat中了,這時(shí)我們需要在tomcat中配置外部應(yīng)用的位置,配置的方式一共有兩種:
l conf/server.xml:打開server.xml文件,找到<Host>元素,在其中添加<Context>元素,代碼如下:
server.xml
1) path:指定當(dāng)前應(yīng)用的名稱;
2) docBase:指定應(yīng)用的物理位置;
3) 瀏覽器訪問路徑: http://localhost:8080/itcast_hello/index.html 。
l conf/catalana/localhost:在該目錄下創(chuàng)建itcast_hello.xml文件,在該文件中編寫<Context>元素,代碼如下:
1) 文件名:指定當(dāng)前應(yīng)用的名稱;
2) docBase:指定應(yīng)用的物理位置;
3) 瀏覽器訪問路徑: http://localhost:8080/itcast_hello/index.html 。
4 理解server.xml(了解)
<Server>
<Servier>
???? <Connector>
???????????????? <Engine>
??????????????????????? <Host>
????????????????????????????? <Context>
l <Server>:根元素,表示整個(gè)服務(wù)器的配置信息;
l <Service>:<Server>的子元素,在<Server>中只能有一個(gè)<Service>元素,它表示服務(wù);
l <Connector>:<Service>的子元素,在<Service>中可以有N個(gè)<Connector>元素,它表示連接。
l <Engine>:<Service>的子元素,在<Service>中只能有一<Engine>元素,該元素表示引擎,它是<Service>組件的核心。
l <Host>:<Engine>的子元素,在<Engine>中可以有N個(gè)<Host>元素,每個(gè)<Host>元素表示一個(gè)虛擬主機(jī)。所謂虛擬主機(jī)就像是真的主機(jī)一樣,每個(gè)主機(jī)都有自己的主機(jī)名和項(xiàng)目目錄。
例如<Host name=”localhost” appBase=”webapps”>表示主機(jī)名為localhost,這個(gè)主機(jī)的項(xiàng)目存放在webapps目錄中。訪問這個(gè)項(xiàng)目下的主機(jī)時(shí),需要使用localhost主機(jī)名,項(xiàng)目都存放在webapps目錄下。
l <Context>:<Host>元素的子元素,在<Host>中可以有N個(gè)<Context>元素,每個(gè)<Context>元素表示一個(gè)應(yīng)用。如果應(yīng)用在<Host>的appBase指定的目錄下,那么可以不配置<Context>元素,如果是外部應(yīng)用,那么就必須配置<Context>。如果要為應(yīng)用指定資源,也需要配置<Context>元素。
我們可以把<Server>看作是一個(gè)大酒店:
l <Service>:酒店的服務(wù)部門;
l <Connector>:服務(wù)員;
l <Engine>:后廚;
l <Host>:后廚中的一個(gè)區(qū),例如川菜區(qū)是一個(gè)<Host>、粵菜區(qū)是一個(gè)<Host>;
l <Context>:后廚的一個(gè)廚師。
用戶發(fā)出一個(gè)請求:http://localhost:8080/hello/index.jsp。發(fā)現(xiàn)是http/1.1協(xié)議,而且還是8080端口,所以就交給了處理這一請求的“服務(wù)員(處理HTTP請求的<Connector>)”,“服務(wù)員”再把請求交給了“后廚(<Engine>)”,因?yàn)檎埱笫且槐P水煮魚,所以由“川菜區(qū)(<Host>)”負(fù)責(zé),因?yàn)椤按罄贤鯉煾?lt;Context>”做水煮魚最地道,所以由它完成。
l <Connector>:關(guān)心請求中的http、和8080;
l < Host>:關(guān)心localhost;
l <Context>:關(guān)心hello
5 映射虛擬主機(jī)(了解)
我們的目標(biāo)是,在瀏覽器中輸出: http://www.itcast.cn 就可以訪問我們的項(xiàng)目。
完成這一目標(biāo),我們需要做三件事:
l 修改端口號(hào)為80,這一點(diǎn)應(yīng)該沒有問題吧;
l 在本機(jī)上可以解析域名為127.0.0.1,這需要修改C:\WINDOWS\system32\drivers\etc\hosts文件,添加對 http://www.itcast.cn 和127.0.01的綁定關(guān)系;
l 在server.xml文件中添加一個(gè)<Host>(主機(jī))。
1) 修改端口號(hào)為80
2) 綁定 http://www.itcast.cn 和127.0.01的綁定關(guān)系
3) server.xml文件中添加一個(gè)<Host>
l name=”www.itcast.cn”:指定虛擬主機(jī)名為 www.itcast.cn ;
l appBase=”F:/itcastapps”:指定當(dāng)前虛擬主機(jī)的應(yīng)用程序存放目錄為F:/itcastapps。
l 在itcastapps目錄下創(chuàng)建名為ROOT的應(yīng)用,因?yàn)橐粋€(gè)主機(jī)只可以有一個(gè)名為ROOT的應(yīng)用,名為ROOT的應(yīng)用在瀏覽器中訪問是可以不給出應(yīng)用名稱。
現(xiàn)在訪問: http://www.itcast.cn 看看是什么頁面!
請注意,只有本機(jī)可以通過 http://www.itcast.cn 來訪問,而其他電腦不可以!
web.xml文件的內(nèi)容,我們可以去其他項(xiàng)目中借!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
