Javaweb開發(fā)項目實例教程(idea版)——tomcat

tomcat
?一、網(wǎng)絡(luò)協(xié)議/網(wǎng)絡(luò)協(xié)議包
在互聯(lián)網(wǎng)通信過程中,在網(wǎng)絡(luò)傳遞信息都是二進制形式。
此時接收方接收到信息之后必須進行一次解析。
但是由于傳遞信息量相對較大,增加接收方解析難度
瀏覽器: http://localhost:8080/myWeb/index.html
? ? ? ? ?? ? ? 1010101010101010101011111000110101010
網(wǎng)絡(luò)協(xié)議包:一組有規(guī)律二進制數(shù)據(jù),存在固定空間。在指定空間下專門存放指定數(shù)據(jù),降低接收方解析難度
0000? 服務(wù)端計算機ip地址? ?0000? Http服務(wù)器端口號? ? ? ? ?0000? 資源文件? ? 0000
二、Http網(wǎng)絡(luò)協(xié)議包:
在B/S通信結(jié)構(gòu)下,瀏覽器發(fā)送請求信息以及服務(wù)端返回資源文件內(nèi)容都是通過Http網(wǎng)絡(luò)協(xié)議包進行傳遞
三、Http網(wǎng)絡(luò)協(xié)議包分類:
1.Http請求協(xié)議包:
1)在瀏覽器準備發(fā)送請求時,負責生成一個Http請求協(xié)議包
2)? 在瀏覽器準備發(fā)送請求時,負責將請求信息寫入Http請求協(xié)議包
3)由瀏覽器負責推送Http請求協(xié)議包
2.Http響應協(xié)議包:
1)在Http服務(wù)器準備返回結(jié)果時,負責生成一個Http響應協(xié)議包
2)由Http服務(wù)器調(diào)用輸出流將文件內(nèi)容(文字,數(shù)字,像素,幀,命令)以二進制形式寫入到Http響應協(xié)議包
3) 由Http服務(wù)器負責將Http響應協(xié)議包推送回發(fā)起請求的瀏覽器
四、Http請求協(xié)議包內(nèi)部結(jié)構(gòu):自上而下分為4層結(jié)構(gòu) 【背】
1. 請求行:
? ? ? ? ? ? ? ? 【
? ? ? ? ? ? ? ? ? ?url:請求地址
? ? ? ? ? ? ? ? ? ?method:請求方式
? ? ? ? ? ? ? ? ? ?】
2.請求頭:??
? ? ? ? ? ? ? ? ? ? ? ?【
? ? ? ? ? ? ? ? ? ? ?如果瀏覽器以GET方式發(fā)送請求
? ? ? ? ? ? ? ? ? ? ?請求參數(shù)存放在請求頭
? ? ? ? ? ? ? ? ? ? ? ? ? 】
3.空白行:
? ? ? ? ? ? ? ? ? ? 【
? ? ? ? ? ? ? ? ? ? ? ?】
4.請求體:
? ? ? ? ? ? ? ? ? ? ?【
? ? ? ? ? ? ? ? ? ? ? 如果瀏覽器以POST方式發(fā)送請求
? ? ? ? ? ? ? ? ? ? ? 請求參數(shù)存放在請求體
? ? ? ? ? ? ? ? ? ? ? ? ?】
五、Http響應協(xié)議包內(nèi)部結(jié)構(gòu)? ? ??自上而下分為4層結(jié)構(gòu) 【背】
1. 狀態(tài)行:
? ? ? ? ? ? ? ? ? 【
? ? ? ? ? ? ? ? ? ? ?Http狀態(tài)碼
? ? ? ? ? ? ? ? ? ? ?】? ? ?
2. 響應頭:
? ? ? ? ? ? ? ? ? ? ? 【
? ? ? ? ? ? ? ? ? ? ? ?content-type:指定瀏覽器使用對應解析器或則編譯器
? ? ? ? ? ? ? ? ? ? ? ?對返回二進制數(shù)據(jù)進行解析或則編譯
? ? ? ? ? ? ? ? ? ? ? ? ?】?
3.?空白行:
? ? ? ? ? ? ? ? ? ? ? ? 【
? ? ? ? ? ? ? ? ? ? ? ? ? ?】? ? ? ?
4.響應體:
? ? ? ? ? ? ? ? ??? 【
? ? ? ? ? ? ? ? ? ? ? ?本次索要文件內(nèi)容(二進制形式存放)
? ? ? ? ? ? ? ? ? ? ? ?】
六、Http服務(wù)器介紹
1.所有的Http服務(wù)器都是由java編程語言開發(fā)應用程序
2.Http服務(wù)器可以接收由瀏覽器發(fā)動的Http請求協(xié)議包
3.Http服務(wù)器可以解析Http請求協(xié)議包二進制數(shù)據(jù)了解用戶請求
4.Http服務(wù)器可以自動定位被訪問的資源文件
5.Http服務(wù)器可以自動將被訪問文件內(nèi)容或則文件運行結(jié)果通過輸出流以二進制形式寫入到Http響應協(xié)議包中響應體
6.Http服務(wù)器可以自動將Http響應協(xié)議包推送回發(fā)起請求的瀏覽器
七、Http服務(wù)器分類:
1.功能最強---Websphere
2.功能最新---GlassFish
3.最輕量級---tomcat
八、tomcat服務(wù)器安裝與配置
1.tomcat服務(wù)器下載:https://tomcat.apache.org/
2.tomcat安裝:tomcat9.0版本是綠色免安裝版
3.tomcat配置:
1)JAVA_HOME環(huán)境變量: 用于向tomcat服務(wù)器提供當前計算機中JDK位置
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?JAVA_HOME=C:\Program Files\Java\jdk1.8.0_101
2)? CATALINA_HOME環(huán)境變量:通知本次啟動的tomcat服務(wù)器存放位置
? ? ?CATALINA_HOME=C:\tomcat9? ? ? ? ?
九、tomcat服務(wù)器啟動與關(guān)閉
1.tomcat服務(wù)器啟動時生成一個管理對象。如果手動關(guān)閉,時間一長。
這個管理對象將脫離管理,導致無法再次啟動tomcat
2.管理命令位置:? ?tomcat安裝地址/bin文件夾
3.啟動tomcat命令: startup
4.關(guān)閉tomcat命令: shutdown
十、tomcat服務(wù)器啟動失敗原因
1.忘記配置JAVA_HOME
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
?At least one of these environment variable is needed to run this program
2.JAVA_HOME地址寫錯了
The JRE_HOME environment variable is not defined correctly
This environment variable is needed to run this program
3.CATALINA_HOME地址寫錯了
The CATALINA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
4.tomcat服務(wù)器默認端口號8080.一個計算機只能啟動一個tomcat
java.net.BindException: Address already in use: JVM_Bind
十一、tomcat服務(wù)器工作文件
1. bin : tomcat管理命令
2.conf:tomcat配置文件。server.xml是tomcat核心配置文件
3.lib: tomcat應用程序在運行時依賴的第三方j(luò)ar
4.logs:存放tomcat運行日志
5.temp:存放tomcat運行時生成臨時文件
6.webapps:tomcat在默認情況下,接收到請求之后到webapps下定位資源文件
7.work: tomcat在默認情況下,在work文件下將jsp文件編輯為java文件并編譯為class文件
十二、第一次BS通信模擬
1. 在webapps下創(chuàng)建一個網(wǎng)站
? ? ***網(wǎng)站:網(wǎng)絡(luò)資源站點,存放可以被瀏覽器訪問的資源文件
2.啟動tomcat
3.啟動瀏覽器,向tomcat發(fā)起請求
在地址欄輸入資源文件定位命令(url):
http://服務(wù)端計算機IP地址:http服務(wù)器端口號/網(wǎng)站名/資源文件名.后綴名
http://localhost:8080/myWeb/one.html
十三、標準網(wǎng)站內(nèi)部結(jié)構(gòu)
? ? ? ? ? ? ? ? ?|
? ? ? ? ? ? ? ? ?|_________src文件夾:java文件和動態(tài)資源文件
? ? ? ? ? ? ? ? ?|
? ? ? ? ? ? ? ? ?|_________web文件夾 :靜態(tài)資源文件/第三jar/網(wǎng)站核心配置文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |________WEB-INF:? ? 第三jar/網(wǎng)站核心配置文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |______lib文件夾(手動)? ? 第三jar
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |______web.xml? 網(wǎng)站核心配置文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|______________靜態(tài)資源文件
十四、模擬tomcat調(diào)用動態(tài)資源文件
1.對于一個網(wǎng)站來說,tomcat只能調(diào)用網(wǎng)站中Servlet接口實現(xiàn)類
2.Tomcat接收到請求之后,根據(jù)url中文件名稱定位被訪問Servlet接口實現(xiàn)類。
1)Tomcat通過Class.forName方法將硬盤類文件加載到內(nèi)存
2)Tomcat通過反色機制通知JVM創(chuàng)建當前類的實例對象
3)Tomcat通過實例對象調(diào)用init方法來實現(xiàn)對實例對象初始化操作
4)Tomcat通過實例對象調(diào)用service方法處理當前用戶請求
5)Tomcat通過輸出流將service方法處理結(jié)果寫入到響應體交還給發(fā)起請求瀏覽器
十五、適配器設(shè)計模式
1.作用: 降低接口實現(xiàn)類開發(fā)難度的??梢宰尳涌趯崿F(xiàn)類自由選擇接口中方法重寫
2.解決方案:
1)使用抽象類實現(xiàn)接口,對接口中不受歡迎抽象方法進行空實現(xiàn)
2)創(chuàng)建接口實現(xiàn)類 繼承與抽象類,此時接口實現(xiàn)類開發(fā)時只要重寫感興趣方法
十六、模板設(shè)計模式:
1.作用:子類只需要考慮相關(guān)方法重寫實現(xiàn),不需要考慮方法調(diào)用場景。
子類方法調(diào)用規(guī)則由父類負責控制
最后奉上視頻教程??,視頻觀看效果更佳!!走過路過別忘素質(zhì)三連哦~~

