【tomact教科書】沒有項目經驗的大學生面試必問tomact服務器(湯姆貓的知識總結)

一、生活中的上網方式(BS、CS)

1.1 生活中的兩種上網方式

一、可以通過瀏覽器(browser)進行上網,比如:訪問瀏覽谷歌瀏覽器、火狐瀏覽器

二、可以通過客戶端(client)進行上網,比如:下載淘寶客戶端逛淘寶

1.2 BS、CS結構介紹

1.2.1 BS結構(Browser/Server )

B/S結構(Browser/Server,瀏覽器/服務器模式),是WEB興起後的一種網絡結構模式,WEB瀏覽器是客戶端最主要的應用軟件。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。客戶機上只要安裝一個瀏覽器,如Netscape NavigatorInternet Explorer服務器安裝SQL ServerOracleMYSQL等數據庫。瀏覽器通過Web Server 同數據庫進行數據交互。

  • 簡單來說,如下:
  • 不需要安裝客戶端,只要能連上網,就能隨時隨地使用
  • 開發人員只需要對服務器端程序進行開發、維護,降低開發維護難度和開發維護成本
  • 瀏覽器主要負責用戶界面的動態展示,只處理一些簡單的邏輯功能
  • 所有具體業務邏輯的處理都由服務器端程序完成,所以程序負載幾乎都轉移給服務器端
  • 但是隨着服務器負載的增加,可以平滑地增加服務器的個數並建立集羣服務器系統,然 後在各個服務器之間做負載均衡
  • 以下圖是BS結構的工作原理:

在這裏插入圖片描述

1.2.2 CS結構(Client/Server )

C/S結構(Client/Server,服務器/客戶機模式),C/S結構通常採取兩層結構。服務器負責數據的管理,客戶機負責完成與用戶的交互任務。 客戶機通過局域網與服務器相連,接受用戶的請求,並通過網絡向服務器提出請求,對數據庫進行操作。服務器接受客戶機的請求,將數據提交給客戶機,客戶機將數據進行計算並將結果呈現給用戶。服務器還要提供完善安全保護及對數據完整性的處理等操作,並允許多個客戶機同時訪問服務器,這就對服務器的硬件處理數據能力提出了很高的要求。

  • 簡單來說,如下:
  • 將應用程序分爲客戶端和服務器端兩層,客戶端程序用於展示功能,爲用戶提供操作界 面,同時也可以進行業務邏輯的處理;而服務器端程序負責操作數據庫完成數據處理等 核心業務
  • 由此可見通過C/S開發模型開發的應用程序,客戶端程序可以承擔一部分業務邏輯處 理,特別是數據的預處理工作,減輕了服務器端程序的壓力
1.2.3 BS、CS總結
  • BS優缺點:
    • 優點:實時地更新數據(新功能的增加只需要在服務端完成,瀏覽器刷新就好了)
    • 缺點:將負載給了服務器
  • CS優缺點:
    • 優點:客戶端也分擔了一部分負載
    • 缺點:如果有新的功能增加,必須要重新下載客戶端

二、Web服務器

2.1 什麼是服務器

服務器服務器,是提供計算服務的設備。由於服務器需要響應服務請求,並進行處理,因此一般來說服務器應具備承擔服務並且保障服務的能力,服務器適用於哪方面。例如網站建設、遊戲開發等都需要服務器。

從廣義上講,服務器是指網絡中能對其它機器提供某些服務的計算機系統。從狹義上講,服務器是專指某些高性能計算機,能通過網絡,對外提供服務。相對於普通PC來說,穩定性、安全性、性能等方面都要求更高,因此在CPU、芯片組、內存、磁盤系統、網絡等硬件和普通PC有所不同。

對於服務器通俗易懂的兩種概念。第一種就是一臺電腦,第二種指的是在電腦上安裝了一個服務器軟件,這時我們也管這臺電腦叫做服務器。

2.2 服務器的作用

作用: 服務器應具備承擔服務並且保障服務的能力。能夠讓本地電腦中的資源可以被其他的電腦訪問(通俗易懂)

2.3 常見的JavaWeb服務器

服務器名稱 描述
WebLogic 美國Oracle公司的基於JAVAEE架構的中間件,用於開發、集成、部署和管理大型分佈式Web應用、網絡應用和數據庫應用的Java應用服務器(收費)
Websphere IBM公司的一個大型的全面支持JAVAEE規範的JAVAEE容器
tomcat 開源的免費的servlet規範的服務器。 它是apache一個Web服務器
Jboss hibernate公司產品,不是開源免費的,是javaee規範的容器
Nginx Nginx (“engine x”) 是一個高性能的 HTTP 和 反向代理服務器

2.4 tomact介紹

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。對於一個初學者來說,可以這樣認爲,當在一臺機器上配置好Apache 服務器,可利用它響應HTML標準通用標記語言下的一個應用)頁面的訪問請求。

2.5 tomact的下載

對於tomact來說,我們常用的版本只有7.0和8.5版本,而7.0版本存在問題,所有我們下載8.5版本

tomact8.5官網下載地址:https://tomcat.apache.org/download-80.cgi(下載解壓即可)

2.6 tomact配置

  1. 將下載好的tomact解壓到一個盤的文件夾中
  2. 保證我們jdk是用JAVA_HOME形式配置的(tomact依賴jdk的這種形式);在tomcat的安裝目錄bin文件夾下的catalina.bat中使用了JAVA_HOME,所以,安裝 tomcat必須要求系統配置中有JAVA_HOME,如果沒有配置,執行startup.bat文件時會 出現閃退效果
  3. 端口號配置;tomcat默認使用的8080端口,可以進行端口號的修改,修改tomcat的端口號,在 tomcat\conf\server.xml文件, 可以添加80端口,80是http協議默認的端口
  4. 測試是否安裝配置成功;在tomcat的安裝目錄下有一個bin目錄 ,在目錄中有一個startup.bat文件執行它。(窗口亂碼無視即可)打開瀏覽器,在瀏覽器的地址欄上輸入 http://localhost:8080。 會出現一個貓的界面,打開了即爲成功,打不開不能訪問頁面則失敗!
  5. 注意:在tomact安裝路徑下打開DOS命令窗口,輸入startup.bat,按下Enter也可以啓動服務器!

在這裏插入圖片描述

2.7 關於tomact地址問題

我們在使用tomact時會在瀏覽器地址欄中輸入此內容:http://localhost:8080/(htttp協議://ip:端口號/資源名稱)

而我們自己的ip地址可以通過DOS命令下鍵入ipconfig來查詢本機ip地址。

注意:loaclhost是默認本機ip(本地迴路地址),所以我們在使用自己電腦的時候常用localhost。關於tomact端口那就是默認端口號8080了!但我們要知道此端口號不是固定寫死的,所以在下面章節的知識內會簡單的講到如何修改端口。但是我們還是不推薦這麼做的,因爲會引起很多問題!

三、Web服務器相關概念

3.1 什麼是Web

Web指的就是網頁,我們所說的Web指的是Internet主機(服務器)上的供外界訪問的資源

3.2 Web資源介紹

Web資源可以分爲兩種:靜態web資源、動態web資源

3.3 靜態Web資源介紹

指web頁面上供人們瀏覽的數據,它們始終不變。例如html

  • 優點:
    • 靜態網站開發簡易,只需要掌握HTML、CSS和JSP就可以開發
    • 靜態訪問速度快,因爲靜態網頁不需要和任何程序進行交互,更不需要對數據進行處理
  • 缺點:
    • 靜態網站內容無法實時更新,因爲網站由一個個的靜態HTML網頁構成,新增內容只能 通過開發人員修改代碼
    • 網站內容過多時,每個頁面都需要單獨製作,需要不斷編寫和維護HTML頁面,增加了 網站開發人員的工作量,提高了運營費用
  • 總結:靜態的web資源,只是供人們瀏覽
3.3.1 靜態Web資源項目介紹

Web靜態項目包含都是靜態資源:html、js、css、圖片、音頻等等(一個靜態web項目,肯定都是靜態資源)

3.4 動態Web資源介紹

指Web頁面中內容是由程序產生的,供人們瀏覽,並且在不同的時間點,數據不一樣,並且 還可以實現人與人之間的交互。用到Servlet和JSP等技術

  • 優點:
    • 維護方便、可以根據用戶需求實現各種功能
    • 查詢信息方便,能存儲大量數據,需要時能立即查詢
    • 網站內容可以實時動態更新
    • 與用戶交互性強,提高用戶粘性
  • 缺點:
    • 技術要求高
  • 總結:動態的web資源,可以實現交互
3.4.1 動態Web資源項目介紹

一個動態web項目,可以有靜態資源(html、js、css、圖片、音頻等等),可以有動態資源, 必須有WEB-INF文件夾及web.xml

四、tomact目錄結構

4.1 tomact目錄結構介紹

注意:我們的動態Web資源項目可以放在webapps文件夾中進行部署的!

目錄名稱(文件夾) 描述
bin 存放tomact的可執行文件,比如:startup.bat(用來啓動服務)
conf tomact的配置文件,比如:server.xml
lib tomact運行時所依賴的核心jar包,比如:jsp-api.jar、servlet-api.jar
logs 存放tomact執行日誌
temp 存放臨時文件
webapps 存放部署Web資源
work 存放jsp轉義之後的java文件

在這裏插入圖片描述

4.2 tomact目錄詳解(初級面試題)

bin: 該目錄下存放的是二進制可執行文件,如果是安裝版,那麼這個目錄下會有兩個exe文件:tomcat9.exe、tomcat9w.exe,前者是在控制檯下啓動Tomcat,後者是彈出UGI窗口啓動Tomcat;如果是解壓版,那麼會有startup.bat和shutdown.bat文件,startup.bat用來啓動Tomcat,但需要JDK的配置,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/firstweb,進入示例項目。其中firstweb就是項目名,即文件夾的名字。

work: 運行時生成的文件,最終運行的文件都在這裏。通過webapps中的項目生成的!可以把這個目錄下的內容刪除,再次運行時會生再次生成work目錄。當客戶端用戶訪問一個JSP文件時,Tomcat會通過JSP生成Java文件,然後再編譯Java文件生成class文件,生成的java和class文件都會存放到這個目錄下。

LICENSE: 許可證。

NOTICE: 說明文件。

五、Web項目相關問題

  • 問題一:Web應用程序的基本目錄結構?

    • web靜態項目
      • html、js、css、圖片…
    • web動態項目
      • html、js、css、圖片…
      • WEB-INF文件夾、web.xml文件(核心)
  • 問題二:web.xml文件中應該有什麼內容?

    • tomcat\webapps\ROOT包下的web.xml文件是tomact的頁面配置

    • 我們前期可以將tomcat\webapps\ROOT應用下的web.xml文件內容複製到我們自己的web.xml文件中使用

  • 問題三:如何設置工程的默認訪問頁面?

    • 在tomcat\conf\web.xml文件,將這個文件理解成是我們所有的tomcat下的web應用程序 中的web.xml文件的父類文件。
    • 在這段聲明就規定了web應用中哪些文件是默認被訪問的。如果我們在自己項目的web.xml 文件中將上述內容覆蓋了,就可以設置自己項目的默認訪問頁面。

六、tomcat部署web應用程序

6.1 tomact部署web應用程序方式

部署方式
一、直接將web應用程序放置到webapps目錄
二、虛擬目錄初級版
三、 虛擬目錄優化版

注意:我們在部署的時候,只要修改一次文件、文件路徑或xml配置就需要關閉當前啓動的服務器(黑窗口),重新啓動!

6.2 部署方式一

方式一:直接將web應用程序放置到webapps目錄

直接將一個web應用程序放置在tomcat/webapps目錄下。這時web應用程序目錄名稱就是 我們訪問tomcat下的這個應用程序的名稱

6.2.1 方式一的部署步驟和訪問

一、將需要部署的項目(dynamicproject:複製的tomact項目中WEB-INF\xml、隨便拉了個圖片和內容)放在webapps目錄下

在這裏插入圖片描述

二、訪問步驟

  1. 先訪問到tomcat容器:http://localhost:8080/
  2. 訪問到項目:http://localhost:8080/dynamicproject/
  3. 訪問到資源:http://localhost:8080/dynamicproject/a.jpg(輸入地址即可訪問a.jpg圖片,舉一反三訪問txt、html)
  4. 注意事項:如果訪問路徑只寫到http://localhost:8080/dynamicproject/,默認訪問index開頭的html文件或jsp文件…

6.3 部署方式二

方式二:虛擬目錄初級版

將一個不在tomcat下的web應用程序部署加載。可以在tomcat\conf\server.xml文件中配 置,在server.xml文件中的標籤中添加一段配置

<Context docBase="磁盤路徑" path="/項目的訪問名稱" />

經過以上配置後,在瀏覽器上可以輸入http://localhost/hello來訪問。但是,在tomcat6以後已經不建議使用了。改動了tomcat的server.xml文件,一旦出錯,tomcat容器就炸了! 會有大麻煩的!讓你吃不了兜着走!

6.3.1 方式二的部署步驟和訪問

一、將需要部署的項目(用的方式一的項目)放在你自己想放的路徑中(D:\Code\dynamicproject)

二、找到該tomcat\conf\server.xml文件,在HOST標籤內加入Context標籤,如下:

在這裏插入圖片描述

三、重啓服務器後,打開網頁,地址欄輸入http://localhost:8080/hello/a.txt即可訪問項目中txt文件

6.4 部署方式三(推薦)

方式三:虛擬目錄優化版

在tomcat/conf/Catalina/localhost下創建任意名稱的一個xml文件,例如創建一個 good.xml文件,在good.xml中書寫

<Context docBase="磁盤路徑" />

這種方案配置,xml文件的名稱就是訪問路徑,在瀏覽器中訪問http://localhost/good就可以。

注意:只需要寫入一個docBase即可

6.4.1 方式三的部署步驟和訪問

一、將需要部署的項目(用的方式一的項目)放在你自己想放的路徑中(D:\Code\dynamicproject)

二、找到tomcat\conf\Catalina\localhost目錄,在目錄下創建名爲good.xml的配置文件。並寫入內容如下:

注意:先寫入xml頭文件

<?xml version="1.0" encoding="UTF-8"?>

在這裏插入圖片描述

三、重啓服務器後,打開網頁,地址欄輸入http://localhost:8080/good/即可訪問項目中默認的index.html網頁

注意:這時候訪問地址就變成了xml文件名稱了,此例子中變爲了good。舉一反三,good/a.txt即可訪問文本

6.5 Web動態項目的相關配置

問題:默認Web訪問地址http://localhost:8080/dynamicproject爲什麼默認訪問index.html或index.jsp呢?(http://localhost:8080/dynamicproject/index.html、http://localhost:8080/dynamicproject/index.jsp)

查看tomact安裝目錄:tomact\conf\web.xml文件,打開xml文件展示出的信息如下:

	<welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

上述配置代碼,是設置tomcat容器中的每個項目的默認頁面是index.html、index.htm、index.jsp。所以,自定義的web項目也部署到tomcat容器中,那麼就會遵守上述規定!如果我們不想遵守這個規定怎麼辦呢?答案那就是需要修改xml文件了!

6.5.1 修改默認xml訪問配置方式一

方式一:直接修改tomcat中的web.xml(即:tomact\conf內包含的web.xml)

	<welcome-file-list>
        <welcome-file>demo.html</welcome-file>
        <welcome-file>demo.htm</welcome-file>
        <welcome-file>demo.jsp</welcome-file>
    </welcome-file-list>

注意:我把默認訪問文件改爲了以demo爲名的.html\.htm\.jsp文件,這時候我們的項目中就需要有以demo爲名的.html\.htm\.jsp文件纔可以被默認訪問。

但是這樣處理存在問題,所有的項目的歡迎頁面都會跟隨改變!這時候又引申出了一種方式,那麼你就別愣着了,去看6.5.2吧!

6.5.2 修改默認xml訪問配置方式二

方式二:直接修改項目自帶的web.xml(即:每一個web動態項目的WEB-INF內包含的web.xml)

	<welcome-file-list>
        <welcome-file>demo.html</welcome-file>
        <welcome-file>demo.htm</welcome-file>
        <welcome-file>demo.jsp</welcome-file>
    </welcome-file-list>

注意:方式二修改的web.xml文件是隨着項目攜帶的那個xml文件,所以以上配置僅針對當前項目有效!

6.5.3 項目中WEB-INF\web.xml和tomact\conf\web.xml的關係

兩者的關係類似於java中的繼承關係(父子關係),如果tomcat中的web.xml的配置無法滿足當前的項目的需求,那麼就可以更改項目中的web.xml,覆蓋tomcat中的web.xml配置。爲項目的部署帶來的便捷!

Java中父子類繼承關係回顧:子父類中的方法重寫即是父類的方法中的功能無法滿足子類的需求,就需要進行方法重寫!(兩者xml關係同理)

七、在idea下開發Web應用

7.1 idea中創建Web項目教程

一、創建idea新項目Create New Project

在這裏插入圖片描述

二、勾選並設置Web項目所需

在這裏插入圖片描述

三、下一步填寫項目名稱(這一步就不用我說了吧!),填寫後點擊Finsh完成創建!

在這裏插入圖片描述

四、創建完成!顯示如下頁面

在這裏插入圖片描述

7.2 idea中Web項目目錄解析

首先我們看到的Web項目目錄是以下模樣

在這裏插入圖片描述

目錄解析

目錄名稱 描述
firstweb 項目名稱
src 儲存java代碼的目錄
web 存放web資源的目錄,比如:html、js、css、圖片、jsp等文件
WEB-INF 存放java文件轉譯之後的class文件
out(目前沒有) out文件是在你打開tomact服務器後生成的out目錄,主要存放服務器部署後的文件
External Libraries 存放jre、tomact環境(環境裏攜帶所有jar包)

7.3 idea中配置並部署tomact服務器

7.3.1 在Web項目中加入靜態資源

我們需要在idea中的web文件夾加入並部署一些靜態資源,以便部署成功後訪問(我這裏加入index.html、demo文件並填寫信息以便測試)

在這裏插入圖片描述

在這裏插入圖片描述

7.3.2 idea中配置tomact服務器

一、在idea中啓動項中添加tomact服務器

在這裏插入圖片描述

二、輸入Tomact服務器名稱

在這裏插入圖片描述

三、雙擊src文件夾或者按照圖下點擊

在這裏插入圖片描述

四、將Web項目打包成war包(加入war包後你會發現多出來一個war包,點擊OK)
注意: 根據本地安裝的tomact,會給當前項目生成一個tomact鏡像,部署到tomact鏡像相當於部署到本地tomact中(在後面部署成功後可以查看鏡像所在C盤目錄)

在這裏插入圖片描述

修改的war名稱就會改變鏡像包內xml文件中的context路徑(也就是修改了你在瀏覽器中的默認訪問路徑,我這裏沒有修改,是因爲後面有關於war包的問題,大家可以修改試試!)

在這裏插入圖片描述

五、你發現沒爲什麼tomact左上角有一個紅色的小叉號❌呢?是因爲你沒有指定要部署的文件也就是war包,那我們就添加了它!

在這裏插入圖片描述

在這裏插入圖片描述

六、設置自動更新(On Update action-Redeploy【代表run和debug按鈕設置重新部署】;On frame deactivation【代表設置熱加載自動更新】)

在這裏插入圖片描述

七、點擊run按鈕或者Debug按鈕,開啓服務器並部署項目

在這裏插入圖片描述

打開C盤生成tomact目錄

在這裏插入圖片描述

可以看見目錄中部署項目的xml文件

在這裏插入圖片描述

八、瀏覽器訪問部署後的項目(啓動服務器並部署成功後會默認彈出瀏覽器顯示默認index.html)

在這裏插入圖片描述

九、試着訪問一下我們項目中的demo文件(瀏覽器地址欄後追加demo即可!)

十、關閉服務器就不用說了吧,但是我還是說一下吧!(就是結束程序點擊紅色小方塊或者快捷鍵Ctrl+F2)

7.4 idea中打包成war包和默認war包的解釋

因爲idea的功能比較強大,所以tomact部署後的項目會存在idea中,儲存在out文件的artifacts文件中。而在這個文件中存在就就是war包的形式。如圖兩個war包,第一個是自己添加的war包,一會我講它的好處,第二個就是默認的war包了!

war包的好處就是: 當我們不使用idea來進行部署的時候,我們的項目是默認放在tomact中的webapps文件中的,那我們就必須複製粘貼這整個文件夾了!如果我們打包成war包,在idea目錄中複製粘貼war包到tomact的wabapps文件夾中,然後啓動服務器,tomact服務器會自動的幫我們解壓war包並部署該項目!而我們放入的是war包,不是在idea內,所以部署該項目的瀏覽器訪問路徑會隨之變成localhost:8080/項目名稱_war/

在這裏插入圖片描述

八、tomact常見錯誤

8.1 tomact閃退問題

JAVA_HOME配置問題(解決:startup.bat中最後增加pause,查看錯誤信息)

8.2 瀏覽器錯誤代碼404

找不到該路徑部署項目文件(1.路徑寫錯了 2.沒有部署成功,重新部署一下)

8.3 瀏覽器錯誤代碼500

配置文件全限定名錯誤(需要查看配置文件是否寫正確,查出修改即可解決問題)


下一章HTTP內容,持續更新知識點總結…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章