<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 53, 文章 - 0, 評論 - 3, 引用 - 0
    數據加載中……

    Tomcat Source Code Reading

    0. I am reading the source code of Tomcat 6.0.26. To pay off the effort,
    I documents some notes for record. Thanks for the articles about Tomcat
    source code, especially the book <<How Tomcat works>>.

    1. They are two concepts about server, one is called Server, which
    is for managing the Tomcat (start and stop); another is called Connector,
    which is the server to serve the application request. they are on the different
    ports. The server.xml clearly show the difference.

    <Server port="8005" shutdown="SHUTDOWN">
      <Service name="Catalina">
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    although the server is the top level element, logically it should not be.
    Actually in code, Bootstrap starts the service first, which
    in turn start the Server and server's services.

    2. My focus in on Connector part. I care how the request is services by the
    Tomcat. Here are some key classes.

    Connector --> ProtocolHandler (HttpProtocol
                            and AjpProtocol)                       --> JIoEndPoint
                                                                               --> Handler(Http11ConnectionHandler
                                                                               and AjpConnectionHandler)
                                                      
                                                      
    3. Connector is most obervious class, but the entry point is not here.
    The sequence is like this.

    Connector.Acceptor.run()
    --> JioEndPoint.processSocke(Socket socket)
        -->SockeProcess.run()
            -->Http11ConnectorHandler.process(Socket socket)
                -->Http11Processor.process(Socket socket)
                    -->CoyoteAdapter.service(Request req, Response res)       

    The core logic is in method Http11Processor.process(Socket socket)                                                  

    CoyoteAdapter.service(Request req, Response res) bridges between Connector module and Container module.

    Any comments are welcome. I may continue the source code reading and dig deeper into it if time permit.


    posted on 2010-03-30 17:11 InPractice 閱讀(607) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲AV乱码久久精品蜜桃| 全部免费国产潢色一级| 亚洲精品无码乱码成人| 国产又长又粗又爽免费视频| 免费在线观看理论片| 久久精品国产亚洲AV果冻传媒 | 成人免费福利视频| 国产AV无码专区亚洲AVJULIA| 亚洲精品456人成在线| 中文字幕免费人成乱码中国| 国产亚洲日韩一区二区三区| 中文字幕无码免费久久9一区9| 成年人视频在线观看免费| 中文无码亚洲精品字幕| 99re6热视频精品免费观看 | 国产免费牲交视频免费播放| 亚洲自偷自偷偷色无码中文| 亚洲中文字幕乱码AV波多JI| 免费无码一区二区三区蜜桃大| 久久亚洲AV成人无码电影| 日本免费xxxx| 日韩国产精品亚洲а∨天堂免| 最近2019中文字幕免费直播| 亚洲人成网站日本片| 又黄又爽无遮挡免费视频| aa毛片免费全部播放完整| 亚洲视频一区在线播放| 成年男女免费视频网站| 一级特黄录像免费播放中文版| 精品无码国产污污污免费| 亚洲日韩乱码中文无码蜜桃| 免费看a级黄色片| 亚洲人成综合网站7777香蕉| 91久久成人免费| 国产亚洲精品成人久久网站| 国产亚洲精久久久久久无码| 无码国产精品一区二区免费I6| 少妇中文字幕乱码亚洲影视| 免费观看男人免费桶女人视频| 亚洲精品中文字幕无乱码麻豆| 久久久久久久久久国产精品免费|