<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 99久久免费国产特黄| 亚洲精品成人在线| 国产亚洲精品AA片在线观看不加载| 182tv免费观看在线视频| 日韩精品无码免费视频| 亚洲色少妇熟女11p| 久久亚洲春色中文字幕久久久| 亚洲第一页综合图片自拍| 成人免费看黄20分钟| 最近中文字幕高清免费中文字幕mv| 91精品全国免费观看青青| 成人精品国产亚洲欧洲| 亚洲人成色777777精品| 亚洲一区二区三区91| 亚洲无圣光一区二区| 亚洲人成在线影院| 亚洲AV无码不卡无码| 亚洲综合国产一区二区三区| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 亚洲日韩看片无码电影| 亚洲成aⅴ人片在线影院八| 亚洲国产精品久久久久婷婷软件| 亚洲乱码日产一区三区| 伊人久久大香线蕉亚洲五月天| 亚洲国产成人精品91久久久| 成人免费无码精品国产电影| 波多野结衣久久高清免费| 成年在线网站免费观看无广告| 久久99九九国产免费看小说| 又黄又爽又成人免费视频| 国产h视频在线观看免费| 国产免费毛不卡片| 亚洲中文无码永久免费 | 亚洲国产视频久久| 亚洲愉拍一区二区三区| 亚洲精品永久在线观看| 在线亚洲v日韩v| 免费人成大片在线观看播放电影| 无遮挡免费一区二区三区| 一级一级毛片免费播放| 精精国产www视频在线观看免费|