JavaWeb必需掌握的知識點(最全 精美版)
阿新 • • 發佈:2020-10-11
ByCaesarChang 合作:[email protected]
~關注我 帶你看更多精品技術和面試必備
1. HTTP協議簡介
超文字傳輸協議(英文:HyperText Transfer Protocol,縮寫:HTTP)是一種用於分散式、協作式和超媒體資訊
系統的應用層協議。 HTTP 是全球資訊網的資料通訊的基礎。
2.HTTP 請求/響應的步驟
2.1 客戶端連線到 Web 伺服器 一個 HTTP 客戶端,通常是瀏覽器,與 Web 伺服器的 HTTP 埠(預設為 80 )建立一個 TCP 套接字連線。 例如 : http://www.baidu.com。 2.2 傳送 HTTP 請求 通過 TCP 套接字,客戶端向 Web 伺服器傳送一個文字的請求報文,一個請求報文由請求行、請求頭部、空行和請求 資料 4 部分組成。 2.3 伺服器接受請求並返回 HTTP 響應 Web 伺服器解析請求,定位請求資源。伺服器將資源複本寫到 TCP 套接字,由客戶端讀取。一個響應由狀態行、響 應頭部、空行和響應資料 4 部分組成。 2.4 釋放 TCP 連線 在 HTTP/1.0 中預設使用短連線。也就是說,客戶端和伺服器每進行一次 HTTP 操作,就建立一次連線,任務結束就 中斷連線。當客戶端瀏覽器訪問的某個HTML 或其他型別的 Web 頁中包含有其他的 Web 資源(如 JavaScript 檔案、 影象檔案、 CSS 檔案等),每遇到這樣一個 Web 資源,瀏覽器就會重新建立一個 HTTP 會話。 而從 HTTP/1.1 起,預設使用長連線,用以保持連線特性。使用長連線的 HTTP 協議,會在響應頭加入這行程式碼: Connection:keep-alive 在使用長連線的情況下,當一個網頁開啟完成後,客戶端和伺服器之間用於傳輸 HTTP 資料的 TCP 連線不會關閉,客 戶端再次訪問這個伺服器時,會繼續使用這一條已經建立的連線。 Keep-Alive 不會永久保持連線,它有一個保持時間,可以在不同的伺服器軟體(如 Apache )中設定這個時間。實現長連線需要客戶端和服務端都支援長連線。 HTTP 協議的長連線和短連線,實質上是 TCP 協議的長連線和短連線。 2.5 客戶端瀏覽器解析 HTML 內容 客戶端瀏覽器首先解析狀態行,查看錶明請求是否成功的狀態程式碼。然後解析每一個響應頭,響應頭告知以下為若 幹位元組的 HTML 文件和文件的字符集。客戶端瀏覽器讀取響應資料 HTML ,根據 HTML 的語法對其進行格式化,並在 瀏覽器視窗中顯示。 例如:在瀏覽器位址列鍵入 URL ,按下回車之後會經歷以下流程: 1. 瀏覽器向 DNS 伺服器請求解析該 URL 中的域名所對應的 IP 地址 ; 2. 解析出 IP 地址後,根據該 IP 地址和預設埠 80 ,和伺服器建立 TCP 連線 ; 3. 瀏覽器發出讀取檔案 (URL 中域名後面部分對應的檔案 ) 的 HTTP 請求,該請求報文作為 TCP 三次握手的第三個 報文的資料傳送給伺服器 ; 4. 伺服器對瀏覽器請求作出響應,並把對應的 html 文字傳送給瀏覽器 ; 5. 瀏覽器將該 html 文字並顯示內容 ;
3.HTTP請求方法
4 兩種開發模型:
⑴C/S又稱Client/Server或客戶/伺服器模式。
伺服器通常採用高效能的PC、工作站或小型機,客戶端需要安裝專 用的客戶端軟體。如QQ,微信等軟體
(2)B/S 是 Brower/Server 的縮寫 , 客戶機上只要安裝一個瀏覽器(Browser )。 Browser/Server 是建立在廣域網的基 礎上的.
⑵ CS優點1. 互動性強
2. 存取模式安全
3. 網路通訊量低
4. 響應速度快
5. 利於處理大量資料
CS缺點:
● 需要專門的客戶端安裝程式,分佈功能弱,
●相容性差,對於不同的開發工具,具有較大的侷限性。若採用不同工具,需要重新改寫程式。
●開發、維護成本較高,發生一次升級,則所有客戶端的程式都需要改變。。
●使用者群固定。由於程式需要安裝才可使用,因此不適合面向一些不可知的使用者.
(2) BS的優點、特點1. 分佈性強
2. 維護方便
3. 開發簡單且共享性強
4. 成本低
BS缺點:
●個性化特點明顯降低,無法實現具有個性化的功能要求。
●在跨瀏覽器上,BS架構不盡如人意。
●通常動態重新整理頁面,響應速度明顯降低
5. Web伺服器的分類
Web伺服器是執行及釋出Web應用的容器,只有將開發的Web專案放置到該容器中,才能使網路中的所有使用者通過
瀏覽器進行訪問。 開發 Java Web 應用所採用的伺服器主要是與 JSP/Servlet 相容的 Web 伺服器, 比較常用的有 -----Tomcat、Resin、JBoss、WebSphere 和 WebLogic 等 Tomcat 伺服器 目前最為流行的 Tomcat 伺服器是 Apache-Jarkarta 開源專案中的一個子專案,是一個小型、輕量級的支援 JSP 和 Servlet 技術的 Web 伺服器,也是初學者學習開發JSP應用的首選
6. Tomcat
tomcat的目錄
1 、 bin :該目錄下存放的是二進位制可執行檔案,如果是安裝版,那麼這個目錄下會有兩個 exe 檔案: tomcat9.exe 、 tomcat9w.exe ,前者是在控制檯下啟動 Tomcat ,後者是彈出 UGI 視窗啟動 Tomcat ;如果是解壓 版,那麼會有 startup.bat 和 shutdown.bat 檔案, startup.bat 用來啟動 Tomcat ,但需要 JDK 的配置, shutdown.bat 用來停止 Tomcat ; 2 、 conf :這是一個 非常非常重要 的目錄,這個目錄下有四個最為重要的檔案: server.xml:配置整個伺服器資訊。例如修改埠號,新增虛擬主機等; tomcat-users.xml:儲存tomcat使用者的檔案,這裡儲存的是tomcat的使用者名稱及密碼,以及使用者的角色資訊。可以 按著該檔案中的註釋資訊新增tomcat使用者,然後就可以在Tomcat主頁中進入Tomcat Manager頁面了; web.xml :部署描述符檔案,這個檔案中註冊了很多 MIME 型別,即文件型別。這些 MIME 型別是客戶端與伺服器之 間說明文件型別的,如使用者請求一個 html 網頁,那麼伺服器還會告訴客戶端瀏覽器響應的文件是 text/html 型別 的,這就是一個 MIME 型別。客戶端瀏覽器通過這個 MIME 型別就知道如何處理它了。當然是在瀏覽器中顯示這個 html 檔案了。但如果伺服器響應的是一個 exe 檔案,那麼瀏覽器就不可能顯示它,而是應該彈出下載窗口才對。 MIME 就是用來說明文件的內容是什麼型別的! context.xml :對所有應用的統一配置,通常我們不會去配置它。 3 、 lib : Tomcat 的類庫,裡面是一大堆 jar 檔案。如果需要新增 Tomcat 依賴的 jar 檔案,可以把它放到這個目錄中, 當然也可以把應用依賴的 jar 檔案放到這個目錄中,這個目錄中的 jar 所有專案都可以共享之,但這樣你的應用放到 其他 Tomcat 下時就不能再共享這個目錄下的 Jar 包了,所以建議只把 Tomcat 需要的 Jar 包放到這個目錄下; 4 、 logs :這個目錄中都是日誌檔案,記錄了 Tomcat 啟動和關閉的資訊,如果啟動 Tomcat 時有錯誤,那麼異常也會 記錄在日誌檔案中。 5 、 temp :存放 Tomcat 的臨時檔案,這個目錄下的東西可以在停止 Tomcat 後刪除! 6 、 webapps :存放 web 專案的目錄, 其中每個資料夾都是一個專案 ;如果這個目錄下已經存在了目錄,那麼都是 tomcat 自帶的專案。其中 ROOT 是一個特殊的專案,在位址列中沒有給出專案目錄時,對應的就是 ROOT 專案。 http://localhost:8080/examples ,進入示例專案。其中 examples 就是專案名,即資料夾的名字。 7 、 work :執行時生成的檔案,最終執行的檔案都在這裡。通過 webapps 中的專案生成的!可以把這個目錄下的內 容刪除,再次執行時會生再次生成 work 目錄。當客戶端使用者訪問一個 JSP 檔案時, Tomcat 會通過 JSP 生成 Java 文 件,然後再編譯 Java檔案生成class檔案,生成的java和class檔案都會存放到這個目錄下。 8 、 LICENSE :許可證。 9 、 NOTICE :說明檔案。
7 IDEA建立web專案
首先選擇 JavaEE ->勾選上 web
新建兩個資料夾
classes用來設定編譯完存放的位元組碼檔案, li'b是專案用到的庫
配置的話在
classes的
lib的
選中你的 lib目錄就好了,然後選擇jar包的那個
8.修改埠號
修改配置檔案:/conf/server.xml
9.tomcat如何管理專案
如果寫的不對地方歡迎指正,謝謝了 能點個贊嗎 ,麼麼噠給tomcat增加管理員資訊:
1 配置 conf/tomcat-users.xml <tomcat-users> <role rolename="manager-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui"/> </tomcat-users> 2 在終端執行 Tomcat 2 然後登陸預設的首頁,點選Manager APP 登陸進去就可以停止 服務了
---------------------------------------------------------------------