<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                在[00-02、理解HTTP](https://github.com/someus/another-tutorial-about-java-web/blob/master/00-02.md)中給出了一個簡單的服務器代碼,Tomcat的設計思路也是類似的。 Tomcat是一個servlet容器。 [http://www.kaifajie.cn/tomcat6/7454.html](http://www.kaifajie.cn/tomcat6/7454.html)中的內容值得參考: > 先不去關技術細節,對一個servlet容器,我覺得它首先要做以下事情: 1:實現Servlet api規范。這是最基礎的一個實現,servlet api大部分都是接口規范。如request、response、session、cookie。為了我們應用端能正常使用,容器必須有一套完整實現。 > 2:啟動Socket監聽端口,等待http請求。 > 3:獲取http請求,分發請求給不同的協議處理器,如http和https在處理上是不一樣的。 > 4:封裝請求,構造HttpServletRequest。把socket獲取的用戶請求字節流轉換成java對象httprequest。構造httpResponse。 > 5:調用(若未創建,則先加載)servlet,調用init初始化,執行servlet.service()方法。 > 6:為httpResponse添加header等頭部信息。 > 7:socket回寫流,返回滿足http協議格式的數據給瀏覽器。 > 8:實現JSP語法分析器,JSP標記解釋器。JSP servlet實現和渲染引擎。 > 9:JNDI、JMX等服務實現。容器一般額外提供命名空間服務管理。 > 10:線程池管理,創建線程池,并為每個請求分配線程。 Tomcat有自己的類加載機制。可以參考: [Java類加載原理解析](http://www.blogjava.net/zhuxing/archive/2008/08/08/220841.html) [深入探討 Java 類加載器](http://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html) [Tomcat類加載器體系結構](http://www.cnblogs.com/ivan-zheng/articles/1789682.html) 有一本書是講Tomcat如何運行的:[《How Tomcat Works》](http://book.douban.com/subject/1943128/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看