天天看點

TOMCAT

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檔案:

TOMCAT

http預設端口号為80,也就是說在URL中不給出端口号時就表示使用80端口。當然你也可以修改為其它端口号。

2.5 Tomcat的目錄結構

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

&lt;head&gt;

&lt;title&gt;hello&lt;/title&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;h1&gt;Hello World!&lt;/h1&gt;

&lt;/body&gt;

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"&gt;

完整的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:應用程式的部署描述符檔案,可以在該檔案中對應用進行配置,例如配置應用的首頁:

&lt;welcome-file-list&gt;

&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;

&lt;/welcome-file-list&gt;

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檔案,找到&lt;Host&gt;元素,在其中添加&lt;Context&gt;元素,代碼如下:

server.xml

TOMCAT

1) path:指定目前應用的名稱;

2) docBase:指定應用的實體位置;

l conf/catalana/localhost:在該目錄下建立itcast_hello.xml檔案,在該檔案中編寫&lt;Context&gt;元素,代碼如下:

TOMCAT

1) 檔案名:指定目前應用的名稱;

4 了解server.xml(了解)

&lt;Server&gt;

&lt;Servier&gt;
     &lt;Connector&gt;

                 &lt;Engine&gt;

                        &lt;Host&gt;

                              &lt;Context&gt;

l &lt;Server&gt;:根元素,表示整個伺服器的配置資訊;

l &lt;Service&gt;:&lt;Server&gt;的子元素,在&lt;Server&gt;中隻能有一個&lt;Service&gt;元素,它表示服務;

l &lt;Connector&gt;:&lt;Service&gt;的子元素,在&lt;Service&gt;中可以有N個&lt;Connector&gt;元素,它表示連接配接。

l &lt;Engine&gt;:&lt;Service&gt;的子元素,在&lt;Service&gt;中隻能有一&lt;Engine&gt;元素,該元素表示引擎,它是&lt;Service&gt;元件的核心。

l &lt;Host&gt;:&lt;Engine&gt;的子元素,在&lt;Engine&gt;中可以有N個&lt;Host&gt;元素,每個&lt;Host&gt;元素表示一個虛拟主機。所謂虛拟主機就像是真的主機一樣,每個主機都有自己的主機名和項目目錄。

例如&lt;Host name=”localhost” appBase=”webapps”&gt;表示主機名為localhost,這個主機的項目存放在webapps目錄中。通路這個項目下的主機時,需要使用localhost主機名,項目都存放在webapps目錄下。

l &lt;Context&gt;:&lt;Host&gt;元素的子元素,在&lt;Host&gt;中可以有N個&lt;Context&gt;元素,每個&lt;Context&gt;元素表示一個應用。如果應用在&lt;Host&gt;的appBase指定的目錄下,那麼可以不配置&lt;Context&gt;元素,如果是外部應用,那麼就必須配置&lt;Context&gt;。如果要為應用指定資源,也需要配置&lt;Context&gt;元素。

我們可以把&lt;Server&gt;看作是一個大酒店:

l &lt;Service&gt;:酒店的服務部門;

l &lt;Connector&gt;:服務員;

l &lt;Engine&gt;:後廚;

l &lt;Host&gt;:後廚中的一個區,例如川菜區是一個&lt;Host&gt;、粵菜區是一個&lt;Host&gt;;

l &lt;Context&gt;:後廚的一個廚師。

使用者發出一個請求:http://localhost:8080/hello/index.jsp。發現是http/1.1協定,而且還是8080端口,是以就交給了處理這一請求的“服務員(處理HTTP請求的&lt;Connector&gt;)”,“服務員”再把請求交給了“後廚(&lt;Engine&gt;)”,因為請求是要一盤水煮魚,是以由“川菜區(&lt;Host&gt;)”負責,因為“大老王師傅&lt;Context&gt;”做水煮魚最道地,是以由它完成。

l &lt;Connector&gt;:關心請求中的http、和8080;

l &lt; Host&gt;:關心localhost;

l &lt;Context&gt;:關心hello

5 映射虛拟主機(了解)

完成這一目标,我們需要做三件事:

l 修改端口号為80,這一點應該沒有問題吧;

l 在server.xml檔案中添加一個&lt;Host&gt;(主機)。

1) 修改端口号為80

TOMCAT
TOMCAT

3) server.xml檔案中添加一個&lt;Host&gt;

TOMCAT

l appBase=”F:/itcastapps”:指定目前虛拟主機的應用程式存放目錄為F:/itcastapps。

l 在itcastapps目錄下建立名為ROOT的應用,因為一個主機隻可以有一個名為ROOT的應用,名為ROOT的應用在浏覽器中通路是可以不給出應用名稱。

TOMCAT

web.xml檔案的内容,我們可以去其他項目中借!

開始做,堅持做,重複做