java web基础1Tomcat服务器基本知识
Server>、<Service>、<Connector>、<Engine>、<Host>、<Context>、<logger>、<Value>、 其中最重要的connector標(biāo)簽,它有以下屬性:
<Connector>元素
<Connector>是直接與用戶交互的組件,負(fù)責(zé)接受用戶請(qǐng)求和向客戶返回響應(yīng)結(jié)果。
在server.xml中的connector標(biāo)簽里可以配置服務(wù)器的線程數(shù),最大連接數(shù),等待超時(shí)時(shí)間等。
屬性說(shuō)明:
| 屬性 | 說(shuō)明 |
| port | Connector所監(jiān)聽(tīng)的端口。在瀏覽器中可以通過(guò)輸入url:port的方式提交給對(duì)應(yīng)的Connector。因?yàn)闉g覽器的默認(rèn)端口是80,所以如果把Connector的port設(shè)成80的話,可以直接使用url進(jìn)行訪問(wèn),不用在后邊再跟一個(gè)端口號(hào)。 |
| protocol | 設(shè)定Http協(xié)議,默認(rèn)是HTTP/1.1 |
| minThreads | 服務(wù)器啟動(dòng)時(shí)創(chuàng)建的處理用戶請(qǐng)求的線程數(shù) |
| maxThreads | 可以創(chuàng)建的最大的處理用戶請(qǐng)求的線程數(shù) |
| minSpareThreads | 最小備用線程數(shù) |
| maxSpareThreads | 最大備用線程數(shù) |
| acceptCount | 當(dāng)所有可以使用的處理請(qǐng)求的線程都被用光時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過(guò)這個(gè)數(shù)的請(qǐng)求將不予處理,而返回Connection refused錯(cuò)誤。 |
| redirectPort | 服務(wù)器正在處理http請(qǐng)求時(shí)收到了一個(gè)SSL傳輸請(qǐng)求后重定向的端口號(hào)。(即當(dāng)請(qǐng)求是https時(shí),將它轉(zhuǎn)發(fā)到的端口) |
| enableLookups | 如果為true,表示支持域名解析,則可以在web應(yīng)用中通過(guò)調(diào)用request.getRemoteHost()進(jìn)行DNS查詢來(lái)得到遠(yuǎn)程客戶端的實(shí)際主機(jī)名;若為false則不進(jìn)行DNS?查詢,而是返回其ip地址。默認(rèn)值為true。 |
| connectionTimeout | 等待超時(shí)的時(shí)間數(shù)(以毫秒為單位),如果為-1表示不限制客戶連接的時(shí)間。 |
tomcat服務(wù)器會(huì)自動(dòng)管理webapps目錄下的所有web應(yīng)用,并把它映射成虛似目錄。
只需要將寫好的項(xiàng)目放在tomcat服務(wù)器webapps目錄下,外界就可以直接訪問(wèn)。
例如:把F盤下的JavaWebDemoProject這個(gè)JavaWeb應(yīng)用直接copy到tomcat服務(wù)器webapps目錄中,如下圖所示:
此時(shí)Tomcat服務(wù)器就會(huì)自動(dòng)為JavaWebDemoProject這個(gè)JavaWeb應(yīng)用映射一個(gè)同名的虛擬目錄"/JavaWebDemoProject",然后就可以使用瀏覽器訪問(wèn)這個(gè)JavaWeb應(yīng)用的資源了,
五.瀏覽器與服務(wù)器的交互過(guò)程 (1)瀏覽器發(fā)送http報(bào)文: 瀏覽器將http數(shù)據(jù)流發(fā)送到服務(wù)器上,服務(wù)器上監(jiān)聽(tīng)相應(yīng)端口的軟件,得到http請(qǐng)求體(數(shù)據(jù)流) http請(qǐng)求報(bào)文就是瀏覽器告訴W服務(wù)器要訪問(wèn)服務(wù)器里面的哪個(gè)Web應(yīng)用下的Web資源。形式如下: 其中的,http請(qǐng)求體,accept/user-agent/host/connection等屬性,是瀏覽器自動(dòng)生成的。 換句話說(shuō)就是,瀏覽器會(huì)自動(dòng)生成http header。 關(guān)于瀏覽器自動(dòng)生成http header,可以參考知乎回答http://www.zhihu.com/question/34603729 (2)服務(wù)器收到http請(qǐng)求報(bào)文,返回http響應(yīng)報(bào)文 服務(wù)器接收到瀏覽器傳輸?shù)臄?shù)據(jù)后,開始解析接收到的數(shù)據(jù),解析"GET /JavaWebDemo1/1.jsp HTTP/1.1"里面的內(nèi)容,知道客戶端瀏覽器要訪問(wèn)的是JavaWebDemo1應(yīng)用里面的1.jsp這個(gè)Web資源,并讀取1.jsp這個(gè)Web資源里面的內(nèi)容,將讀到的內(nèi)容再以Stream(流)的形式傳輸給瀏覽器,如下圖所示: (3)瀏覽器拿到http響應(yīng)報(bào)文后,進(jìn)行解析。服務(wù)器發(fā)送回來(lái)的數(shù)據(jù):
1HTTP/1.1 200 OK2Server: Apache-Coyote/1.13Content-Type: text/html;charset=ISO-8859-14Content-Length: 1025Date: Mon, 19 May 2014 14:25:14 GMT6 7<html> 8<head> 9<title>JavaWebDemo1</title>10</head>11<body>12 JavaWebDemo1 1314</body>15</html> (4)瀏覽器對(duì)靜態(tài)資源的讀取 注意:如果http響應(yīng)報(bào)文中,傳回來(lái)的html代碼包含jpg,css,js等靜態(tài)資源文件。瀏覽器這時(shí)會(huì)一邊渲染html代碼,同時(shí)再次發(fā)送http請(qǐng)求來(lái)獲得這些靜態(tài)資源。 例如,服務(wù)器返回的html代碼包括 圖片http://static.ak.fbcdn.net/rsrc.php/z12E0/hash/8q2anwu7.gif
http://static.ak.fbcdn.net/rsrc.php/zBS5C/hash/7hwy7at6.gif
…
CSS 式樣表
http://static.ak.fbcdn.net/rsrc.php/z448Z/hash/2plh8s4n.css
http://static.ak.fbcdn.net/rsrc.php/zANE1/hash/cvtutcee.css
…
JavaScript 文件
http://static.ak.fbcdn.net/rsrc.php/zEMOA/hash/c8yzb6ub.js
http://static.ak.fbcdn.net/rsrc.php/z6R9L/hash/cq2lgbs8.js 讀取這些靜態(tài)文件,都會(huì)經(jīng)歷一個(gè)類似讀取html代碼的過(guò)程。 需要記住的是,這些靜態(tài)資源,瀏覽器可以對(duì)它們進(jìn)行緩存。服務(wù)器的響應(yīng)報(bào)文中包含了靜態(tài)文件的保存期限。這樣,當(dāng)下次瀏覽器訪問(wèn)相同網(wǎng)頁(yè)時(shí)就可以在瀏覽器內(nèi)存中讀取這些靜態(tài)資源,從而加快了網(wǎng)頁(yè)讀取速度。 概括:服務(wù)器先返回html代碼,瀏覽器然后再次請(qǐng)求靜態(tài)資源。倆步驟。 瀏覽器與服務(wù)器交互過(guò)程,具體可考http://www.360doc.com/content/13/0809/16/13264825_305872743.shtml 六.Tomcat jar包 在tomcat的根目錄lib文件夾下,所有的jar包以供服務(wù)器上所有應(yīng)用共同使用。 jar包放在WEB-INF下比放在tomcat下有什么好處? tomcat自動(dòng)加載WEB-INF/lib下的jar包。 在Tomcat的lib目錄下,這些jar都是會(huì)被所有的部署應(yīng)用共享使用到的,而單獨(dú)應(yīng)用的WEB-INF下的,是自己獨(dú)立使用的。如果放到Tomcat下,可能多個(gè)應(yīng)用之間對(duì)于某個(gè)項(xiàng)目不同版本有依賴,這個(gè)時(shí)候就比較難處理。畢竟ClassLoader只能加載一份。
七.WEB應(yīng)用的組成結(jié)構(gòu) 一張圖說(shuō)明解決
?
圖片來(lái)自http://www.cnblogs.com/xdp-gacl/p/3734395.html,感謝作者
轉(zhuǎn)載于:https://www.cnblogs.com/panxuejun/p/5836020.html
總結(jié)
以上是生活随笔為你收集整理的java web基础1Tomcat服务器基本知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python 网络爬虫 001 (科普)
- 下一篇: TCP/IP详解 笔记八