<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)航:
     
    主站蜘蛛池模板: 亚洲第一黄片大全| 久久青青成人亚洲精品| 亚洲国产精品一区二区成人片国内| 亚洲狠狠色丁香婷婷综合| 一级毛片免费毛片一级毛片免费| 水蜜桃亚洲一二三四在线| 黄页网站免费在线观看| 亚洲色欲啪啪久久WWW综合网| 日韩免费视频播播| a级黄色毛片免费播放视频| 91麻豆精品国产自产在线观看亚洲| XXX2高清在线观看免费视频| 久久久久久亚洲Av无码精品专口| 国内精自视频品线六区免费| 国产精品亚洲精品爽爽| 久久久久亚洲精品日久生情| 国产又大又粗又硬又长免费| 久久精品视频免费看| 美女视频黄视大全视频免费的| 亚洲精品无码国产| 永久免费看bbb| 国产电影午夜成年免费视频 | 国产91免费视频| 国产福利免费视频| 欧美日韩亚洲精品| 亚洲精品午夜在线观看| 亚洲成色在线综合网站 | 亚洲精品中文字幕无码AV| 亚洲国产精品丝袜在线观看| av无码国产在线看免费网站 | 青青青国产免费一夜七次郎| 18以下岁毛片在免费播放| 美女网站在线观看视频免费的| 亚洲av永久无码精品秋霞电影秋 | 亚洲熟妇无码AV在线播放| 国产三级电影免费观看| 91在线视频免费看| 一区二区免费视频| 久久精品免费电影| 久久久精品2019免费观看 | 成人毛片免费观看|