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










































































































































































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