Tomcat
tomcat6支援servlet2.5
tomcat7支援servlet3.0
1. 啟動關閉tomcat
需要先配置JAVA_HOME
* 輕按兩下%CATALANA_HOME%\bin\startup.bat
* 輕按兩下%CATALANA_HOME%\bin\shutdown.bat
因為伺服器在本機上,是以主機名為localhost,表示本機
tomcat的預設端口為8080
index.jsp是首頁
2. 修改端口号
* 修改端口号,%CATALANA_HOME%\conf\server.xml,修改<Connector port="8080">,把8080修改了即可。
* http協定預設端口為80,也就是說http://localhost,等同與http://localhost:80
如果把Tomcat端口号修改成80,那麼通路伺服器就可以無需再給出端口号。
3. tomcat目錄結構
* bin:二進制可執行檔案,例如startup.bat和shutdown.bat
* conf:配置檔案,例如:server.xml、context.xml、web.xml、tomcatusers.xml
* lib:tomcat所需jar包
* logs:日志檔案
* temp:存放tomcat運作時産生的臨時檔案,當tomcat關閉後,這個目錄中的檔案可以删除
* webapps:這個目錄下的每個檔案夾對應一個JavaWeb應用程式
* work:webapps下的應用程式在運作時會自動生成檔案,就在work目錄下。work目錄删除了也沒問題,但再次運作應用程式還要再生成work目錄和檔案。
4. 建立JavaWeb目錄:hello
* 在webapps目錄下建立一個hello目錄,hello目錄就是項目目錄了;
* 在hello目錄下建立WEB-INF
* 在WEB-INF下建立web.xml
* 在WEB-INF下建立classes目錄
* 在WEB-INF下建立lib目錄
* 在hello目錄下建立index.html
在web.xml檔案中添加如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
</web-app>
在index.html中添加如下内容:
<html>
<head><title>index.html</title></head>
<body>
<h1>hello首頁</h1>
</body>
</html>
啟動tomcat,打開用戶端通路http://localhost:8080/hello/index.html
===================================
配置外部應用
外部應用既是把應用程式不放到Tomcat的wabapps目錄下!而已放在外面,例如:F:/hello
1. 在conf/server.xml下配置,指定外部應用的路徑。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="itcast_hello" docBase="F:/hello"/>
</Host>
* 在<Host>元素下添加<Context>元素,path為URL通路路徑,docBase為外部應用的目錄。
2. 在conf/catalana/localhost下添加配置檔案,指定外部應用路徑
* 在conf/catalana/localhost目錄下建立itcast_hello.xml檔案,其中itcast_hello就是URL通路路徑
* 在itcast_hello.xml檔案中添加:<Context docBase="F:/hello"/>,docBase指定外部應用的目錄。
3. 預設web應用
* 如果把web應用的内部放到webapps/ROOT下,通路URL路徑中不用給出應用名稱。
4. 配置虛拟主機
* 這需要把域名http://www.itcast.cn映射成IP位址:127.0.0.1
* 需要把tomcat端口号修改為80
* 需要在server.xml中配置主機,并指定主機的應用目錄
* 在應用目錄中添加名為ROOT的web應用。
2). 在conf/server.xml中修改端口為80
3). 在conf/server.xml中添加<Host>元素
<Host name="www.itcast.cn" appBase="F:/myapps" unpackWARs="true" autoDeploy="true">
* name:指定該主機域名為www.itcast.cn
* appBase:指定該主機的應用目錄為F:/myapps
4). 在F:/myapps下建立名為ROOT的web應用。
本文摘自 傳智播客的視訊《史上最全面的JavaWeb視訊教程_tomcat與web程式結構與Http協定》筆記
------------------------------另一筆記-------------------------------------
1 Tomcat概述
Tomcat伺服器由Apache提供,開源免費。由于Sun和其他公司參與到了Tomcat的開發中,是以最新的JSP/Servlet規範總是能在Tomcat中展現出來。目前最新版本是Tomcat8,我們課程中使用Tomcat7。Tomcat7支援Servlet3.0,而Tomcat6隻支援Servlet2.5!
2 安裝、啟動、配置Tomcat
Tomcat分為安裝版和解壓版: l 安裝版:一台電腦上隻能安裝一個Tomcat; l 解壓版:無需安裝,解壓即可用,解壓多少份都可以,是以我們選擇解壓版。
2.1 Tomcat目錄結構
安裝版Tomcat的安裝過程請參考day03_res/Tomcat安裝.doc檔案。 把解壓版Tomcat解壓到一個沒有中文,沒有空格的路徑中即可,建議路徑不要太深,因為我們需要經常進入Tomcat安裝目錄。例如:F:\apache-tomcat-7.0.42
2.2 啟動和關閉Tomcat
在啟動Tomcat之前,我們必須要配置環境變量:
l JAVA_HOME:必須先配置JAVA_HOME,因為Tomcat啟動需要使用JDK; l CATALANA_HOME:如果是安裝版,那麼還需要配置這個變量,這個變量用來指定Tomcat的安裝路徑,例如:F:\apache-tomcat-7.0.42。 startup.bat會調用catalina.bat,而catalina.bat會調用setclasspath.bat,setclasspath.bat會使用JAVA_HOME環境變量,是以我們必須在啟動Tomcat之前把JAVA_HOME配置正确。
啟動問題:
點選startup.bat後視窗一閃即消失:檢查JAVA_HOME環境變量配置是否正确;
2.3 進入Tomcat首頁
通路:http://localhost:8080
2.4 配置端口号
打開%CATALANA_HOME%\conf\server.xml檔案:
http預設端口号為80,也就是說在URL中不給出端口号時就表示使用80端口。當然你也可以修改為其它端口号。
2.5 Tomcat的目錄結構
bin:該目錄下存放的是二進制可執行檔案,如果是安裝版,那麼這個目錄下會有兩個exe檔案:tomcat6.exe、tomcat6w.exe,前者是在控制台下啟動Tomcat,後者是彈出UGI視窗啟動Tomcat;如果是解壓版,那麼會有startup.bat和shutdown.bat檔案,startup.bat用來啟動Tomcat,但需要先配置JAVA_HOME環境變量才能啟動,shutdawn.bat用來停止Tomcat;
conf:這是一個非常非常重要的目錄,這個目錄下有四個最為重要的檔案:
server.xml:配置整個伺服器資訊。例如修改端口号,添加虛拟主機等;下面會詳細介紹這個檔案;
tomcatusers.xml:存儲tomcat使用者的檔案,這裡儲存的是tomcat的使用者名及密碼,以及使用者的角色資訊。可以按着該檔案中的注釋資訊添加tomcat使用者,然後就可以在Tomcat首頁中進入Tomcat Manager頁面了;
web.xml:部署描述符檔案,這個檔案中注冊了很多MIME類型,即文檔類型。這些MIME類型是用戶端與伺服器之間說明文檔類型的,如使用者請求一個html網頁,那麼伺服器還會告訴用戶端浏覽器響應的文檔是text/html類型的,這就是一個MIME類型。用戶端浏覽器通過這個MIME類型就知道如何處理它了。當然是在浏覽器中顯示這個html檔案了。但如果伺服器響應的是一個exe檔案,那麼浏覽器就不可能顯示它,而是應該彈出下載下傳視窗才對。MIME就是用來說明文檔的内容是什麼類型的!
context.xml:對所有應用的統一配置,通常我們不會去配置它。
lib:Tomcat的類庫,裡面是一大堆jar檔案。如果需要添加Tomcat依賴的jar檔案,可以把它放到這個目錄中,當然也可以把應用依賴的jar檔案放到這個目錄中,這個目錄中的jar所有項目都可以共享之,但這樣你的應用放到其他Tomcat下時就不能再共享這個目錄下的Jar包了,是以建議隻把Tomcat需要的Jar包放到這個目錄下;
logs:這個目錄中都是日志檔案,記錄了Tomcat啟動和關閉的資訊,如果啟動Tomcat時有錯誤,那麼異常也會記錄在日志檔案中。
temp:存放Tomcat的臨時檔案,這個目錄下的東西可以在停止Tomcat後删除!
work:運作時生成的檔案,最終運作的檔案都在這裡。通過webapps中的項目生成的!可以把這個目錄下的内容删除,再次運作時會生再次生成work目錄。當用戶端使用者通路一個JSP檔案時,Tomcat會通過JSP生成Java檔案,然後再編譯Java檔案生成class檔案,生成的java和class檔案都會存放到這個目錄下。
LICENSE:許可證。
NOTICE:說明檔案。
<a></a>
---------------------------------------------------------------------------------------
靜态網站:
在webapps目錄下建立一個目錄(命名必須不包含中文和空格),這個目錄稱之為項目目錄;
在項目目錄下建立一個html檔案;
動态網站:
在webpass目錄下建立一個項目目錄;
在項目目錄下建立如下内容:
WEB-INF目錄;
建立靜态或動态頁面
1 建立靜态應用
l 在webapps下建立一個hello目錄;
l 在webapps\hello\下建立index.html;
l 啟動tomcat;
l 打開浏覽器通路http://localhost:8080/hello/index.html
index.html
<head>
<title>hello</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
2 建立動态應用
l 在webapps下建立hello1目錄;
l 在webapps\hello1\下建立WEB-INF目錄;
l 在webapps\hello1\WEB-INF\下建立web.xml;
l 在webapps\hello1\下建立index.html。
web.xml
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應用還需要在WEB-INF目錄下建立:
l classes; l lib目錄;
webapps
|- hello |-index.html |-WEB-INF |-web.xml |-classes |-lib l hello:應用目錄,hello就是應用的名稱; l index.html:應用資源。應用下可以有多個資源,例如css、js、html、jsp等,也可以把資源放到檔案夾中,例如:hello\html\index.html,這時通路URL為:http://localhost:8080/hello/html/index.html;
l WEB-INF:這個目錄名稱必須是大寫,這個目錄下的東西是無法通過浏覽器直接通路的,也就是說放到這裡的東西是安全的;
l web.xml:應用程式的部署描述符檔案,可以在該檔案中對應用進行配置,例如配置應用的首頁:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
l classes:存放class檔案的目錄;
l lib:存放jar包的目錄;
3 配置外部應用(了解)
原來我們的項目放到webapps下,現在我放到外面,也希望tomcat可以找到它!
也可以把應用放到Tomcat之外,這就是外部應用了。例如我們把上面寫的hello應用從webapps目錄中剪切到C槽下,即C:/hello。現在hello這個Web應用已經不在Tomcat中了,這時我們需要在tomcat中配置外部應用的位置,配置的方式一共有兩種:
l conf/server.xml:打開server.xml檔案,找到<Host>元素,在其中添加<Context>元素,代碼如下:
server.xml
1) path:指定目前應用的名稱;
2) docBase:指定應用的實體位置;
l conf/catalana/localhost:在該目錄下建立itcast_hello.xml檔案,在該檔案中編寫<Context>元素,代碼如下:
1) 檔案名:指定目前應用的名稱;
4 了解server.xml(了解)
<Server>
<Servier>
<Connector>
<Engine>
<Host>
<Context>
l <Server>:根元素,表示整個伺服器的配置資訊;
l <Service>:<Server>的子元素,在<Server>中隻能有一個<Service>元素,它表示服務;
l <Connector>:<Service>的子元素,在<Service>中可以有N個<Connector>元素,它表示連接配接。
l <Engine>:<Service>的子元素,在<Service>中隻能有一<Engine>元素,該元素表示引擎,它是<Service>元件的核心。
l <Host>:<Engine>的子元素,在<Engine>中可以有N個<Host>元素,每個<Host>元素表示一個虛拟主機。所謂虛拟主機就像是真的主機一樣,每個主機都有自己的主機名和項目目錄。
例如<Host name=”localhost” appBase=”webapps”>表示主機名為localhost,這個主機的項目存放在webapps目錄中。通路這個項目下的主機時,需要使用localhost主機名,項目都存放在webapps目錄下。
l <Context>:<Host>元素的子元素,在<Host>中可以有N個<Context>元素,每個<Context>元素表示一個應用。如果應用在<Host>的appBase指定的目錄下,那麼可以不配置<Context>元素,如果是外部應用,那麼就必須配置<Context>。如果要為應用指定資源,也需要配置<Context>元素。
我們可以把<Server>看作是一個大酒店:
l <Service>:酒店的服務部門;
l <Connector>:服務員;
l <Engine>:後廚;
l <Host>:後廚中的一個區,例如川菜區是一個<Host>、粵菜區是一個<Host>;
l <Context>:後廚的一個廚師。
使用者發出一個請求:http://localhost:8080/hello/index.jsp。發現是http/1.1協定,而且還是8080端口,是以就交給了處理這一請求的“服務員(處理HTTP請求的<Connector>)”,“服務員”再把請求交給了“後廚(<Engine>)”,因為請求是要一盤水煮魚,是以由“川菜區(<Host>)”負責,因為“大老王師傅<Context>”做水煮魚最道地,是以由它完成。
l <Connector>:關心請求中的http、和8080;
l < Host>:關心localhost;
l <Context>:關心hello
5 映射虛拟主機(了解)
完成這一目标,我們需要做三件事:
l 修改端口号為80,這一點應該沒有問題吧;
l 在server.xml檔案中添加一個<Host>(主機)。
1) 修改端口号為80
3) server.xml檔案中添加一個<Host>
l appBase=”F:/itcastapps”:指定目前虛拟主機的應用程式存放目錄為F:/itcastapps。
l 在itcastapps目錄下建立名為ROOT的應用,因為一個主機隻可以有一個名為ROOT的應用,名為ROOT的應用在浏覽器中通路是可以不給出應用名稱。
web.xml檔案的内容,我們可以去其他項目中借!
開始做,堅持做,重複做