花了兩天時間把JavaWeb基礎(chǔ)的結(jié)構(gòu)理順了……總結(jié)一下。
零鸡岗、JavaWeb后臺目錄框架組成(以TomCat為例)
畫個圖如下混槐。拿實際的文件目錄結(jié)構(gòu)舉例(主機名為localhost)。
看不懂不要緊轩性,我翻譯一下声登。
一、訪問網(wǎng)頁的流程
當(dāng)你輸入一串網(wǎng)址時揣苏,它是進行如下操作的:瀏覽器通過系統(tǒng)內(nèi)的HOSTS或者DNS進行域名解析悯嗓,獲取主機對應(yīng)的IP地址,然后根據(jù)查詢到的IP連接上服務(wù)器卸察,TCP三次握手成功后向服務(wù)器某端口發(fā)送http請求脯厨。服務(wù)器對http請求解析要訪問的主機名、web應(yīng)用和web資源坑质,再運行web應(yīng)用獲取相應(yīng)資源合武,并通過http協(xié)議回傳數(shù)據(jù)。
二涡扼、簡單剖析流程中的各個元素
1.虛擬主機
一般實體主機會分成多塊虛擬主機稼跳,每塊虛擬主機各自受外界不同的訪問。在Tomcat里吃沪,虛擬主機可以通過conf下的server.xml汤善,使用Host元素進行配置。其下的name就是虛擬主機名票彪,而appBase對應(yīng)該虛擬主機管理的文件夾红淡,在appBase下的web應(yīng)用全部由該虛擬主機管理(比如上圖server.xml中l(wèi)ocalhost設(shè)置的webapps目錄,那些文件全部是localhost管理的應(yīng)用)降铸。
2.Servlet
Servlet是眾多種webapps中的一種在旱。要想運行Servlet程序,我們需要把程序映射到一個URL地址上垮耳。
在webapps-->WEB-INf-->web.xml可以設(shè)置對Servlet的映射地址颈渊。在web.xml中遂黍,<servlet>元素用于設(shè)置Servlet的注冊名和完整類名,而<servlet-mapping>元素用于設(shè)置已注冊的Servlet和對外訪問地址俊嗽。
如上圖雾家,我們想訪問examples中的名為HelloWorldExample的Servlet抵栈,可以向瀏覽器輸入以下URL:
localhost:8080/examples/servlets/servlet/HelloWorldExample
趁耗。如果看不懂,也可以看以下鏈接:Servlet完整執(zhí)行流程 - 知乎 (zhihu.com)胡野。