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