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


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲大尺度无码无码专线一区| 国产老女人精品免费视频| 久热免费在线视频| 鲁丝片一区二区三区免费| 日韩免费电影网址| 免费v片在线观看视频网站| 国产精品色拉拉免费看| 国产自产拍精品视频免费看| 亚洲国产成人精品无码久久久久久综合| 亚洲 无码 在线 专区| 在线a亚洲v天堂网2019无码| 亚洲AV无码久久精品成人| 亚洲校园春色另类激情| 人妻仑刮八A级毛片免费看| 成人精品一区二区三区不卡免费看| 一级毛片免费观看| 情侣视频精品免费的国产| 国产亚洲av片在线观看18女人| 亚洲国产第一页www| 亚洲久热无码av中文字幕| a级大片免费观看| 永久免费av无码网站韩国毛片| 亚洲精品国产V片在线观看| 亚洲欧洲日产国码在线观看| 国产精品亚洲专一区二区三区| 欧洲人免费视频网站在线| 国产男女猛烈无遮挡免费视频网站 | 久久精品国产亚洲AV久| 国产免费久久精品99久久| 欧美日韩国产免费一区二区三区| 日本亚洲国产一区二区三区| 亚洲AV成人噜噜无码网站| 中国黄色免费网站| 日本免费人成视频播放| 亚洲成AV人片久久| 在线成人精品国产区免费| 全免费一级毛片在线播放| 自怕偷自怕亚洲精品| APP在线免费观看视频| 又粗又大又长又爽免费视频| 亚洲五月综合网色九月色|