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


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲AV无码一区二区三区在线| 亚洲午夜福利在线观看| 日韩成人在线免费视频| 亚洲人成影院在线观看| 亚洲美女视频免费| 日韩在线视频线视频免费网站| 久久久国产精品无码免费专区| 国产乱人免费视频| 97亚洲熟妇自偷自拍另类图片| 亚洲精品国产首次亮相| 久久久久成人精品免费播放动漫| 怡红院亚洲怡红院首页| 国产成人综合亚洲| 思思re热免费精品视频66| 亚洲日韩精品无码专区网址| 成全视频在线观看免费| 成人伊人亚洲人综合网站222| 亚洲AV成人片色在线观看| 一级中文字幕免费乱码专区| 国产亚洲精品AA片在线观看不加载 | 亚洲女人初试黑人巨高清| 皇色在线免费视频| 国产在线a不卡免费视频| 亚洲一区在线免费观看| 日韩激情无码免费毛片| fc2免费人成在线| 亚洲成AV人网址| 蜜桃传媒一区二区亚洲AV| 最近的中文字幕大全免费版| 亚洲婷婷在线视频| 免费国产a国产片高清| 亚洲精品国产suv一区88| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲AV一区二区三区四区| 久久久久无码专区亚洲av| 久久久久久影院久久久久免费精品国产小说| 亚洲福利视频网站| 1000部国产成人免费视频| 亚洲人成网www| 57pao国产成永久免费视频| 91亚洲国产成人久久精品网站|