Tomcat是用來(lái)干什么的?帶你快速入門(mén)學(xué)會(huì)tomcat!通俗易懂!
Tomcat是什么?
Tomcat是web容器。你在做web項(xiàng)目時(shí),多數(shù)需要http協(xié)議,也就是基于請(qǐng)求和響應(yīng),比如你在百度輸入一行內(nèi)容搜索,那么百度服務(wù)器如何處理這個(gè)請(qǐng)求呢,他需要?jiǎng)?chuàng)建servlet來(lái)處理,servlet其實(shí)就是java程序,只是在服務(wù)器端的java程序servlet通過(guò)配置文件攔截你的請(qǐng)求,并進(jìn)行相應(yīng)處理,然后展示給你相應(yīng)界面,那么servlet如何創(chuàng)建?
這時(shí)候tomcat用到了,它就是幫助你創(chuàng)建servlet的東西,所以也稱(chēng)web容器,沒(méi)有它,沒(méi)法運(yùn)行web項(xiàng)目。相對(duì)應(yīng)的web容器有很多,比如JBOSS,WEBLOGIC等。
Tomcat是一個(gè)應(yīng)用服務(wù)器。他可以運(yùn)行你按照J(rèn)2EE中的Servlet規(guī)范編寫(xiě)好的Java程序。
簡(jiǎn)單的說(shuō)它是一個(gè)Web網(wǎng)站的運(yùn)行容器,把你寫(xiě)好的網(wǎng)站放進(jìn)去就可以運(yùn)行。
一、網(wǎng)絡(luò)協(xié)議/網(wǎng)絡(luò)協(xié)議包
在互聯(lián)網(wǎng)通信過(guò)程中,在網(wǎng)絡(luò)傳遞信息都是二進(jìn)制形式。
此時(shí)接收方接收到信息之后必須進(jìn)行一次解析。
但是由于傳遞信息量相對(duì)較大,增加接收方解析難度
瀏覽器: http://localhost:8080/myWeb/index.html
1010101010101010101011111000110101010
網(wǎng)絡(luò)協(xié)議包:
一組有規(guī)律二進(jìn)制數(shù)據(jù),存在固定空間。在指定空間下專(zhuān)門(mén)存放指定數(shù)據(jù),降低接收方解析難度
0000 服務(wù)端計(jì)算機(jī)ip地址 0000 Http服務(wù)器端口號(hào) 0000 資源文件 0000
二、Http網(wǎng)絡(luò)協(xié)議包:
在B/S通信結(jié)構(gòu)下,瀏覽器發(fā)送請(qǐng)求信息以及服務(wù)端返回資源文件內(nèi)容都是通過(guò)Http網(wǎng)絡(luò)協(xié)議包進(jìn)行傳遞
三、Http網(wǎng)絡(luò)協(xié)議包分類(lèi):
1.Http請(qǐng)求協(xié)議包:
1)在瀏覽器準(zhǔn)備發(fā)送請(qǐng)求時(shí),負(fù)責(zé)生成一個(gè)Http請(qǐng)求協(xié)議包
2)在瀏覽器準(zhǔn)備發(fā)送請(qǐng)求時(shí),負(fù)責(zé)將請(qǐng)求信息寫(xiě)入Http請(qǐng)求協(xié)議包
3)由瀏覽器負(fù)責(zé)推送Http請(qǐng)求協(xié)議包
2.Http響應(yīng)協(xié)議包:
1)在Http服務(wù)器準(zhǔn)備返回結(jié)果時(shí),負(fù)責(zé)生成一個(gè)Http響應(yīng)協(xié)議包
2)由Http服務(wù)器調(diào)用輸出流將文件內(nèi)容(文字,數(shù)字,像素,幀,命令)以二進(jìn)制形式寫(xiě)入到Http響應(yīng)協(xié)議包
3)由Http服務(wù)器負(fù)責(zé)將Http響應(yīng)協(xié)議包推送回發(fā)起請(qǐng)求的瀏覽器
四、Http請(qǐng)求協(xié)議包內(nèi)部結(jié)構(gòu):自上而下分為4層結(jié)構(gòu) 【背】
1.請(qǐng)求行:
【
url:請(qǐng)求地址
method:請(qǐng)求方式
】
2.請(qǐng)求頭:
【
如果瀏覽器以GET方式發(fā)送請(qǐng)求
請(qǐng)求參數(shù)存放在請(qǐng)求頭
】
3.空白行:
【
】
4.請(qǐng)求體:
【
如果瀏覽器以POST方式發(fā)送請(qǐng)求
請(qǐng)求參數(shù)存放在請(qǐng)求體
】
五、Http響應(yīng)協(xié)議包內(nèi)部結(jié)構(gòu) 自上而下分為4層結(jié)構(gòu) 【背】
1.狀態(tài)行:
【
Http狀態(tài)碼
】
2.響應(yīng)頭:
【
content-type:指定瀏覽器使用對(duì)應(yīng)解析器或則編譯器
對(duì)返回二進(jìn)制數(shù)據(jù)進(jìn)行解析或則編譯
】
3.空白行:
【
】
4.響應(yīng)體:
【
本次索要文件內(nèi)容(二進(jìn)制形式存放)
】
六、Http服務(wù)器介紹
1.所有的Http服務(wù)器都是由java編程語(yǔ)言開(kāi)發(fā)應(yīng)用程序
2.Http服務(wù)器可以接收由瀏覽器發(fā)動(dòng)的Http請(qǐng)求協(xié)議包
3.Http服務(wù)器可以解析Http請(qǐng)求協(xié)議包二進(jìn)制數(shù)據(jù)了解用戶請(qǐng)求
4.Http服務(wù)器可以自動(dòng)定位被訪問(wèn)的資源文件
5.Http服務(wù)器可以自動(dòng)將被訪問(wèn)文件內(nèi)容或則文件運(yùn)行結(jié)果通過(guò)輸出流以二進(jìn)制形式寫(xiě)入到Http響應(yīng)協(xié)議包中響應(yīng)體
6.Http服務(wù)器可以自動(dòng)將Http響應(yīng)協(xié)議包推送回發(fā)起請(qǐng)求的瀏覽器
七、Http服務(wù)器分類(lèi):
1.功能最強(qiáng)---Websphere
2.功能最新---GlassFish
3.最輕量級(jí)---tomcat
八、tomcat服務(wù)器安裝與配置
1.tomcat服務(wù)器下載: tomcat.a(chǎn)pache.org/
2.tomcat安裝:tomcat9.0版本是綠色免安裝版
3.tomcat配置:
1)JAVA_HOME環(huán)境變量: 用于向tomcat服務(wù)器提供當(dāng)前計(jì)算機(jī)中JDK位置
JAVA_HOME=C:Program FilesJavajdk1.8.0_101
2)CATALINA_HOME環(huán)境變量:通知本次啟動(dòng)的tomcat服務(wù)器存放位置
CATALINA_HOME=C:tomcat9
九、tomcat服務(wù)器啟動(dòng)與關(guān)閉
1.tomcat服務(wù)器啟動(dòng)時(shí)生成一個(gè)管理對(duì)象。如果手動(dòng)關(guān)閉,時(shí)間一長(zhǎng)。
這個(gè)管理對(duì)象將脫離管理,導(dǎo)致無(wú)法再次啟動(dòng)tomcat
2.管理命令位置: tomcat安裝地址/bin文件夾
3.啟動(dòng)tomcat命令: startup
4.關(guān)閉tomcat命令: shutdown
十、tomcat服務(wù)器啟動(dòng)失敗原因
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地址寫(xiě)錯(cuò)了
The JRE_HOME environment variable is not defined correctly
This environment variable is needed to run this program
3.CATALINA_HOME地址寫(xiě)錯(cuò)了
The CATALINA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
4.tomcat服務(wù)器默認(rèn)端口號(hào)8080.一個(gè)計(jì)算機(jī)只能啟動(dòng)一個(gè)tomcat
java.net.BindException: Address already in use: JVM_Bind
十一、tomcat服務(wù)器工作文件
1.bin : tomcat管理命令
2.conf:tomcat配置文件。server.xml是tomcat核心配置文件
3.lib: tomcat應(yīng)用程序在運(yùn)行時(shí)依賴(lài)的第三方j(luò)ar
4.logs:存放tomcat運(yùn)行日志
5.temp:存放tomcat運(yùn)行時(shí)生成臨時(shí)文件
6.webapps:tomcat在默認(rèn)情況下,接收到請(qǐng)求之后到webapps下定位資源文件
7.work: tomcat在默認(rèn)情況下,在work文件下將jsp文件編輯為java文件并編譯為class文件
十二、第一次BS通信模擬
1.在webapps下創(chuàng)建一個(gè)網(wǎng)站
網(wǎng)站:網(wǎng)絡(luò)資源站點(diǎn),存放可以被瀏覽器訪問(wèn)的資源文件
2.啟動(dòng)tomcat
3.啟動(dòng)瀏覽器,向tomcat發(fā)起請(qǐng)求
在地址欄輸入資源文件定位命令(url):
http://服務(wù)端計(jì)算機(jī)IP地址:http服務(wù)器端口號(hào)/網(wǎng)站名/資源文件名.后綴名
http://localhost:8080/myWeb/one.html
十三、標(biāo)準(zhǔn)網(wǎng)站內(nèi)部結(jié)構(gòu)
|
|_________src文件夾:java文件和動(dòng)態(tài)資源文件
|
|_________web文件夾 :靜態(tài)資源文件/第三jar/網(wǎng)站核心配置文件
|
|________WEB-INF: 第三jar/網(wǎng)站核心配置文件
|
|______lib文件夾(手動(dòng)) 第三jar
|
|______web.xml 網(wǎng)站核心配置文件
|
|______________靜態(tài)資源文件
十四、模擬tomcat調(diào)用動(dòng)態(tài)資源文件
1.對(duì)于一個(gè)網(wǎng)站來(lái)說(shuō),tomcat只能調(diào)用網(wǎng)站中Servlet接口實(shí)現(xiàn)類(lèi)
2.Tomcat接收到請(qǐng)求之后,根據(jù)url中文件名稱(chēng)定位被訪問(wèn)Servlet接口實(shí)現(xiàn)類(lèi)。
1)Tomcat通過(guò)Class.forName方法將硬盤(pán)類(lèi)文件加載到內(nèi)存
2)Tomcat通過(guò)反色機(jī)制通知JVM創(chuàng)建當(dāng)前類(lèi)的實(shí)例對(duì)象
3)Tomcat通過(guò)實(shí)例對(duì)象調(diào)用init方法來(lái)實(shí)現(xiàn)對(duì)實(shí)例對(duì)象初始化操作
4)Tomcat通過(guò)實(shí)例對(duì)象調(diào)用service方法處理當(dāng)前用戶請(qǐng)求
5)Tomcat通過(guò)輸出流將service方法處理結(jié)果寫(xiě)入到響應(yīng)體交還給發(fā)起請(qǐng)求瀏覽器
十五、適配器設(shè)計(jì)模式
1.作用: 降低接口實(shí)現(xiàn)類(lèi)開(kāi)發(fā)難度的?梢宰尳涌趯(shí)現(xiàn)類(lèi)自由選擇接口中方法重寫(xiě)
2.解決方案:
1)使用抽象類(lèi)實(shí)現(xiàn)接口,對(duì)接口中不受歡迎抽象方法進(jìn)行空實(shí)現(xiàn)
2)創(chuàng)建接口實(shí)現(xiàn)類(lèi) 繼承與抽象類(lèi),此時(shí)接口實(shí)現(xiàn)類(lèi)開(kāi)發(fā)時(shí)只要重寫(xiě)感興趣方法
十六、模板設(shè)計(jì)模式:
1.作用:子類(lèi)只需要考慮相關(guān)方法重寫(xiě)實(shí)現(xiàn),不需要考慮方法調(diào)用場(chǎng)景。子類(lèi)方法調(diào)用規(guī)則由父類(lèi)負(fù)責(zé)控制
以上Tomcat全套視頻/資料可評(píng)論/私信免費(fèi)獲取~~~

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車(chē)】汽車(chē)E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書(shū)】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專(zhuān)題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開(kāi)始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類(lèi)新物種登上歷史舞臺(tái)
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開(kāi)成長(zhǎng)空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?