Tomcat
tomcat6支持servlet2.5
tomcat7支持servlet3.0
1. 啟動關閉tomcat
? 需要先配置JAVA_HOME
? * 雙擊%CATALANA_HOME%\bin\startup.bat
? * 雙擊%CATALANA_HOME%\bin\shutdown.bat
訪問服務器:
http://localhost:8080/index.jsp
? 因為服務器在本機上,所以主機名為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"
??? 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中添加如下內容:
<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為外部應用的目錄。
? * 在瀏覽器地址欄中訪問:
http://localhost:8080/itcast_hello/index.html
2. 在conf/catalana/localhost下添加配置文件,指定外部應用路徑
? * 在conf/catalana/localhost目錄下創建itcast_hello.xml文件,其中itcast_hello就是URL訪問路徑
? * 在itcast_hello.xml文件中添加:<Context docBase="F:/hello"/>,docBase指定外部應用的目錄。
3. 缺省web應用
? * 在webapps目錄下有一個ROOT目錄,它是缺省web應用,訪問這個應用的路徑:
http://localhost:8080/index.jsp
? * 如果把web應用的內部放到webapps/ROOT下,訪問URL路徑中不用給出應用名稱。
4. 配置虛擬主機
? 希望:
http://www.itcast.cn訪問web應用。
? * 這需要把域名http://www.itcast.cn映射成IP地址:127.0.0.1
? * 需要把tomcat端口號修改為80
? * 需要在server.xml中配置主機,并指定主機的應用目錄
? * 在應用目錄中添加名為ROOT的web應用。
? 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:指定該主機域名為www.itcast.cn
??? * appBase:指定該主機的應用目錄為F:/myapps
? 4). 在F:/myapps下創建名為ROOT的web應用。
? 訪問:
http://www.itcast.cn/index.html
? 其中
www.itcast.cn
在本機上會被解析為127.0.0.1,但其他電腦訪問時無效。
本文摘自 傳智播客的視頻《史上最全面的JavaWeb視頻教程_tomcat與web程序結構與Http協議》筆記
?
?
------------------------------另一筆記-------------------------------------
1 Tomcat概述
Tomcat服務器由Apache提供,開源免費。由于Sun和其他公司參與到了Tomcat的開發中,所以最新的JSP/Servlet規范總是能在Tomcat中體現出來。當前最新版本是Tomcat8,我們課程中使用Tomcat7。Tomcat7支持Servlet3.0,而Tomcat6只支持Servlet2.5!
2 安裝、啟動、配置Tomcat
下載Tomcat可以到 http://tomcat.apache.org 下載。
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。
l 啟動:進入%CATALANA_HOME%\bin目錄,找到 startup.bat [c1] ,雙擊即可;
l 關閉:進入%CATALANA_HOME%\bin目錄,找到 shutdown.bat [c2] ,雙擊即可;
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端口。當然你也可以修改為其它端口號。
當把端口號修改為80后,在瀏覽器中只需要輸入: http://localhost 就可以訪問Tomcat主頁了。
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后刪除!
webapps: 存放web項目的目錄,其中每個文件夾都是一個項目;如果這個目錄下已經存在了目錄,那么都是tomcat自帶的。項目。其中ROOT是一個特殊的項目,在地址欄中沒有給出項目目錄時,對應的就是ROOT項目。 http://localhost:8080/examples,進入示例項目。其中examples 就是項目名,即文件夾的名字。
work: 運行時生成的文件,最終運行的文件都在這里。通過webapps中的項目生成的!可以把這個目錄下的內容刪除,再次運行時會生再次生成work目錄。當客戶端用戶訪問一個JSP文件時,Tomcat會通過JSP生成Java文件,然后再編譯Java文件生成class文件,生成的java和class文件都會存放到這個目錄下。
LICENSE :許可證。
NOTICE :說明文件。
---------------------------------------------------------------------------------------
?
?
Web應用(重點)
靜態網站:
在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
<html> <head> <title>hello</title> </head> <body> <h1>Hello World!</h1> </body> </html> |
2 創建動態應用
l 在webapps下創建hello1目錄;
l 在webapps\hello1\下創建WEB-INF目錄;
l 在webapps\hello1\WEB-INF\下創建web.xml;
l 在webapps\hello1\下創建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應用還需要在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:指定應用的物理位置;
3) 瀏覽器訪問路徑: http://localhost:8080/itcast_hello/index.html 。
l conf/catalana/localhost:在該目錄下創建itcast_hello.xml文件,在該文件中編寫<Context>元素,代碼如下:
1) 文件名:指定當前應用的名稱;
2) docBase:指定應用的物理位置;
3) 瀏覽器訪問路徑: http://localhost:8080/itcast_hello/index.html 。
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 映射虛擬主機(了解)
我們的目標是,在瀏覽器中輸出: http://www.itcast.cn 就可以訪問我們的項目。
完成這一目標,我們需要做三件事:
l 修改端口號為80,這一點應該沒有問題吧;
l 在本機上可以解析域名為127.0.0.1,這需要修改C:\WINDOWS\system32\drivers\etc\hosts文件,添加對 http://www.itcast.cn 和127.0.01的綁定關系;
l 在server.xml文件中添加一個<Host>(主機)。
1) 修改端口號為80
2) 綁定 http://www.itcast.cn 和127.0.01的綁定關系
3) server.xml文件中添加一個<Host>
l name=”www.itcast.cn”:指定虛擬主機名為 www.itcast.cn ;
l appBase=”F:/itcastapps”:指定當前虛擬主機的應用程序存放目錄為F:/itcastapps。
l 在itcastapps目錄下創建名為ROOT的應用,因為一個主機只可以有一個名為ROOT的應用,名為ROOT的應用在瀏覽器中訪問是可以不給出應用名稱。
現在訪問: http://www.itcast.cn 看看是什么頁面!
請注意,只有本機可以通過 http://www.itcast.cn 來訪問,而其他電腦不可以!
web.xml文件的內容,我們可以去其他項目中借!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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