tomcat內部流程圖
假設來自客戶的請求為:http://localhost:8080/test/index.jsp
請求被傳送到本機埠8080,被在那裡偵聽的coyote http/1.1 connector獲得
connector把該請求交給它所在的service的engine來處理,並等待engine的回應
engine獲得請求localhost:8080/test/index.jsp,匹配它所有虛擬主機host
engine匹配到名為localhost的host(即使匹配不到也把請求交給該host處理,因為該host被定義為該engine的預設主機)
localhost host獲得請求/test/index.jsp,匹配它所擁有的所有context
host匹配到路徑為/test的context(如果匹配不到就把該請求交給路徑名為""的context去處理)
context匹配到url pattern為*.jsp的servlet,對應於jspservlet類
構造httpservletrequest物件和httpservletresponse物件,作為引數呼叫jspservlet的doget或dopost方法
context把執行完了之後的httpservletresponse物件返回給host
host把httpservletresponse物件返回給engine
engine把httpservletresponse物件返回給connector
connector把httpservletresponse物件返回給客戶browser
源自:
Tomcat原始碼執行流程解讀
1 tomcat架構圖 開局一張圖,內容全靠編。2 從tomcat架構圖可以看出tomcat的本質就是乙個伺服器 server 然後下面有多個服務 service 每個服務下面又包含多個聯結器 connector connector是連線外部網路的紐帶。engine這個引擎下面又有多個host,而h...
Tomcat 請求流程
以nio為例 1.nioendpoint.acceptor 阻塞處理 accept 並把合適的socket 放置blockingqueue 2.nioendpoint.poller 從blockingqueue拿socket,使用nio的非阻塞方式 處理read 把read 事件ready的sock...
Tomcat 後台執行
在 window 系統下直接執行tomcat bin目錄下的startup.bat檔案就可以直接啟動程式,同時也會彈出乙個命令列視窗,列印程式執行時的日誌,且需要一直處於開啟狀態,不能關閉,所以最好將 tomcat 設定成後台執行。tomcat支援將啟動開關註冊成服務,具體做法 開啟命令列視窗,進入...