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

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

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

    隨筆 - 53, 文章 - 0, 評論 - 3, 引用 - 0
    數(shù)據(jù)加載中……

    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 閱讀(616) 評論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 99re6免费视频| 久久免费精品视频| 暖暖日本免费在线视频| 性xxxx黑人与亚洲| 国产桃色在线成免费视频| 色偷偷女男人的天堂亚洲网| 97在线线免费观看视频在线观看| 亚洲精品欧洲精品| 91在线品视觉盛宴免费| 亚洲一区精品视频在线| 一二三四在线播放免费观看中文版视频| 亚洲激情视频图片| 麻豆国产入口在线观看免费| 欧美亚洲精品一区二区| 亚洲成a人片在线播放| 中国人免费观看高清在线观看二区| 亚洲免费人成在线视频观看| 日本免费一区二区三区 | 亚洲国产日韩精品| 免费国产黄线在线观看| 亚洲AV日韩AV无码污污网站| 亚洲日韩国产一区二区三区| 亚洲免费观看视频| 亚洲小说区图片区| 国产免费拔擦拔擦8x| 国产亚洲精品免费视频播放| 亚洲人成在线观看| 在线免费视频一区二区| 午夜免费国产体验区免费的| 久久精品国产亚洲AV麻豆王友容 | 成人爽a毛片免费| 亚洲日韩中文字幕| 国产成人精品男人免费| 99久久婷婷免费国产综合精品| 亚洲综合一区二区精品久久| 日韩中文字幕在线免费观看| 99久久成人国产精品免费| 亚洲一区二区三区四区视频| 亚洲综合色区在线观看| 182tv免费视视频线路一二三| 精品特级一级毛片免费观看|