1. 程式人生 > >01、Tomcat服務器學習和使用

01、Tomcat服務器學習和使用

mls -i acl tom 關閉 打包成 環境變量 1-1 context

一、Tomcat服務器

1.1、Tomcat端口配置

Tomcat的所有配置都放在conf文件夾之中,裏面的server.xml文件是配置的核心文件。

如果想修改Tomcat服務器的啟動端口,則可以在server.xml配置文件中的Connector節點進行的端口修改

1、端口修改

訪問tomcat服務器:http://localhost:8080,其中8080表示端口.localhost是域名:訪問本機:127.0.0.1.

例如:將Tomcat服務器的啟動端口由默認的8080改成8081端口

a) Tomcat服務器啟動端口默認配置

技術分享圖片

b) 將Tomcat服務器啟動端口修改成8081端口

技術分享圖片

端口修改完成後必須重啟Tomcat服務器生效。訪問Tomcat主頁可使用

http://localhost:8081/

2、端口占用和安裝目錄

  • netstat -ano命令.查看占用端口的進程pid,再用任務管理器關閉

Catalina_Home:用於指定tomcat的安裝目錄.

技術分享圖片

註:這個環境變量是針對多個tomcat服務器的識別,配置過所指定的目錄會被運行,一般不推薦配置.

3、目錄結構

技術分享圖片

1.2、Tomcat虛擬目錄的映射

Web應用開發好後,若想供外界訪問,需要把web應用所在目錄交給web服務器管理,這個過程稱之為虛似目錄的映射。

虛擬目錄的映射方式有很多種:

1、虛擬目錄的映射方式一:在server.xml文件的host元素中配置

找到server.xml文件的host元素,如下圖所示:

技術分享圖片

JavaWebApp這個虛擬目錄是由Tomcat服務器管理的,JavaWebApp是自定義不存在的目錄,所以稱之為"虛擬目錄"。

技術分享圖片

其中,Context表示上下文,代表的就是一個JavaWeb應用,Context元素有兩個屬性,

  • path:用來配置虛似目錄,必須以"/"開頭。
  • docBase:配置此虛似目錄對應著硬盤上的Web應用所在目錄。

使用瀏覽器訪問"/JavaWebApp"這個虛擬目錄下的1.jsp這個web資源,訪問結果如下:

http://localhost:8080/JavaWebApp/hello.html

註意:在Tomcat6之後中,不再建議在server.xml文件中使用配置context元素的方式來添加虛擬目錄的映射,

因為每次修改server.xml文件後,Tomcat服務器就必須要重新啟動後才能重新加載server.xml文件。

2、虛擬目錄的映射方式二:讓tomcat服務器自動映射

tomcat服務器會自動管理webapps目錄下的所有web應用,並把它映射成虛似目錄。換句話說,

tomcat服務器webapps目錄中的web應用,外界可以直接訪問。

例如:把F盤下的JavaWebDemoProject這個JavaWeb應用直接copy到tomcat服務器webapps目錄中,如下圖所示:

技術分享圖片

此時Tomcat服務器就會自動為JavaWebDemoProject這個JavaWeb應用映射一個同名的虛擬目錄"/JavaWebDemoProject",

然後就可以使用瀏覽器訪問這個JavaWeb應用的資源了,如下圖所示:

技術分享圖片

3、虛擬目錄的映射方式三

在tomcat服務器的\conf\Catalina\localhost目錄下添加一個以xml作為擴展名的文件,xml文件的名字可以任意。

Context元素的path屬性是用來配置虛似目錄的名稱的,所以虛似目錄的名稱就是這個xml文件的名稱。

$CATALINA_BASE指的就是tomcat服務器根目錄,[enginename]指的是Tomcat服務器使用的引擎名稱,Tomcat使用的引擎是Catalina

技術分享圖片

在aa.xml文件中添加Context元素映射JavaWeb應用,代碼如下

<Context docBase="F:\JavaWebDemoProject"/>

註意:在Context元素中並沒有指明path屬性來設置虛擬目錄的名稱,那麽"F:\JavaWebDemoProject"映射的虛擬目錄就是當前正在編輯的這個xml文件的名稱aa。

技術分享圖片

使用這種方式映射虛擬目錄的最大好處是修改了配置文件後不用重啟Tomcat服務器

1.3、瀏覽器和服務器交互

當我們打在瀏覽器的地址欄中輸入URL地址去訪問服務器上web資源的過程中,瀏覽器和服務器都做了什麽操作呢?

1) 瀏覽器根據主機名"www.gacl.cn"去操作系統的Hosts文件中查找主機名對應的IP地址。
2) 瀏覽器如果在操作系統的Hosts文件中沒有找到對應的IP地址,就去互聯網上的DNS服務器上查找"www.gacl.cn"這臺主機對應的IP地址。
3) 瀏覽器查找到"www.gacl.cn"這臺主機對應的IP地址後,就使用IP地址連接到Web服務器。
4) 瀏覽器連接到web服務器後,就使用http協議向服務器發送請求,發送請求的過程中,瀏覽器會向Web服務器以Stream(流)的形式傳輸數據,

告訴Web服務器要訪問服務器裏面的哪個Web應用下的Web資源,如下圖所示:

技術分享圖片

  • GET:告訴Web服務器,瀏覽器是以GET的方式向服務器發請求。
  • /JavaWebDemo1/1.jsp:告訴Web服務器,瀏覽器要訪問JavaWebDemo1應用裏面的1.jsp這個Web資源。
  • HTTP/1.1:告訴Web服務器,瀏覽器是以HTTP協議請求的,使用的是1.1的版本。

5、瀏覽器做完上面4步工作後,就開始等待,等待Web服務器把自己想要訪問的1.jsp這個Web資源傳輸給它。

6、服務器接收到瀏覽器傳輸的數據後,開始解析接收到的數據,服務器解析"GET /JavaWebDemo1/1.jsp HTTP/1.1"裏面的內容時知道客戶端瀏覽器要

訪問的是JavaWebDemo1應用裏面的1.jsp這個Web資源,然後服務器就去讀取1.jsp這個Web資源裏面的內容,

將讀到的內容再以Stream(流)的形式傳輸給瀏覽器,如下圖所示:

技術分享圖片

7、瀏覽器拿到服務器傳輸給它的數據之後,就可以把數據展現給用戶看了,如下圖所示:

1.4、JavaWeb應用組成結構

開發JavaWeb應用時,不同類型的文件有嚴格的存放規則,否則不僅可能會使web應用無法訪問,還會導致web服務器啟動報錯

技術分享圖片

WebRoot - Web應用所在目錄,一般情況下虛擬目錄要配置到此文件夾當中。
┝WEB-INF:此文件夾必須位於WebRoot文件夾裏面,而且必須以這樣的形式去命名,字母都要大寫。
┝web.xml:配置文件,有格式要求,此文件必須以這樣的形式去命名,並且必須放置到WEB-INF文件夾中。

web.xml的格式可以直接從Tomcat中參考得到:找到Tomcat目錄下的webapps\ROOT\WEB-INF這個目錄下的web.xml文件,

把這個文件拷貝到我們新建的WEB-INF文件夾中,並修改這個web.xml文件,把裏面的註釋刪除掉,只留下如下所示的代碼即可:

<?xml version="1.0" encoding="ISO-8859-1"?>  
<web-app 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"     
  version="2.5"
  metadata-complete="true">    
  <display-name>Welcome to Tomcat</display-name>    
  <description>       
      Welcome to Tomcat
   </description> 
</web-app>

1.5、打包JavaWeb應用

在Java中,使用"jar"命令來對將JavaWeb應用打包成一個War包,jar命令的用法只需要在dos下輸入jar即可瀏覽。

技術分享圖片

將JavaWeb應用打包成一個war包,然後將這個war包放到Tomcat服務器的webapps目錄下,當Tomcat服務器啟動時,就會自動將webapps目錄下的war包解壓。

技術分享圖片

1.6、Tomcat體系結構

技術分享圖片

Tomcat服務器的啟動是基於一個server.xml文件的,Tomcat啟動的時候首先會啟動一個Server,Server裏面就會啟動Service,

Service裏面就會啟動多個"Connector(連接器)",每一個連接器都在等待客戶機的連接,當有用戶使用瀏覽器去訪問服務器上面

的web資源時,首先是連接到Connector(連接器),Connector(連接器)是不處理用戶的請求的,而是將用戶的請求交給一個Engine(引擎)

去處理,Engine(引擎)接收到請求後就會解析用戶想要訪問的Host,然後將請求交給相應的Host,Host收到請求後就會解析出用戶想要

訪問這個Host下面的哪一個Web應用,一個web應用對應一個Context。

01、Tomcat服務器學習和使用