NIO學習之Web服務(wù)器示例
1 根據(jù)cpu core數(shù)量確定selector數(shù)量2 用一個selector服務(wù)accept,其他selector按照core-1分配線程數(shù)運行
3 accept selector作為生產(chǎn)者把獲得的請求放入隊列
4 某個selector作為消費者從blocking queue中取出請求socket channel,并向自己注冊
5 當獲得read信號時,selector建立工作任務(wù)線程worker,并提交給系統(tǒng)線程池
6 worker線程排隊后在線程池中執(zhí)行,把協(xié)議頭讀入緩沖區(qū),然后解析,處理,響應(yīng),關(guān)閉連接










































































































































































===============06/27/10
如何解析header?,以行為單位讀取,按照header敏感的關(guān)鍵字進行匹配 對于首行取得對方調(diào)用的方法GET/POST 地址 和協(xié)議版本
然后根據(jù)用戶的配置,和解析地址請求,獲得響應(yīng)的servlet,并把通過反射+默認構(gòu)造函數(shù)構(gòu)造這個servlet,解析地址參數(shù)等設(shè)置到對象httpservletrequest和httpservletresponse中,然后通過反射invoke對應(yīng)的get/post/put/delete等方法,并把封裝的兩個對象作為參數(shù)傳進去,同時在response的header中傳遞一個cookie作為session的依據(jù)。
如何解析header?,以行為單位讀取,按照header敏感的關(guān)鍵字進行匹配 對于首行取得對方調(diào)用的方法GET/POST 地址 和協(xié)議版本
然后根據(jù)用戶的配置,和解析地址請求,獲得響應(yīng)的servlet,并把通過反射+默認構(gòu)造函數(shù)構(gòu)造這個servlet,解析地址參數(shù)等設(shè)置到對象httpservletrequest和httpservletresponse中,然后通過反射invoke對應(yīng)的get/post/put/delete等方法,并把封裝的兩個對象作為參數(shù)傳進去,同時在response的header中傳遞一個cookie作為session的依據(jù)。
@2008 楊一. 版權(quán)所有. 保留所有權(quán)利
posted on 2010-06-25 19:19 楊一 閱讀(1970) 評論(0) 編輯 收藏 所屬分類: Java SE