以nio為例
1. nioendpoint.acceptor 阻塞處理 accept() 並把合適的socket 放置blockingqueue
2. nioendpoint.poller 從blockingqueue拿socket,使用nio的非阻塞方式 處理read(),把read()事件ready的socket交給執行緒池處理
3. read() http請求內容幷包裝request
7. 找到request path匹配的所有filter+servlet 組成filterchain 然後呼叫filterchain
8. 在所有的filter的dofilter() 跑完後 呼叫servlet 的service()
9. 返回結果寫回 socket
jsp流程
假使訪問流程如下:
1)訪問jsp
2)修改jsp
3)再次訪問jsp(以下展示此次流程)
1). 檢視是否開啟jsp動態編譯||是否第一次載入jsp。如果是則首先檢測該jsp有沒有修改。如果有,則使用jdtcompiler編譯jsp為class。
2). 呼叫原先的jsp對應servlet的destroy()方法
4). 呼叫jsp對應class檔案的_jspservice()方法
tomcat請求流程淺解
tomcat的架構圖大概是這樣的規律,乙個server有多個servcie,乙個service分為conector container realm logging sesssion jspaer等元件,connector分為http ajp的connector,container有乙個engine,...
Tomcat執行流程
tomcat內部流程圖 假設來自客戶的請求為 http localhost 8080 test index.jsp 請求被傳送到本機埠8080,被在那裡偵聽的coyote http 1.1 connector獲得 connector把該請求交給它所在的service的engine來處理,並等待eng...
HTTP請求流程
最近一直在研究如何讓asp.net實現上傳大檔案的功能,所以都沒怎麼寫技術類的文章了。可惜的是至今還沒研究出來,慚愧 不過因為這樣,也了解了一下http訊息請求的大致過程。我就先簡單介紹下,然後再來講如何利用telnet來模擬http請求。講得不對的地方還希望大家給我指出來。因為內容比較多,所以分成...