JVM,Tomcat,Servlet,Tomcat中的應用。徹底弄懂這個概念之間的聯絡,jvmtomcat

來源:互聯網
上載者:User

JVM,Tomcat,Servlet,Tomcat中的應用。徹底弄懂這個概念之間的聯絡,jvmtomcat

tomcat和tomcat中的應用(即webapps下的war包)是運行在同一個jvm中的,但分工不同。

tomcat的角色是“調度員”,而你的應用的角色是“工作者”,tomcat處理一個請求的大致過程如下:
1. 假設tomcat監聽8080連接埠,當一個http請求從主機的8080連接埠發送過來時,tomcat最先獲知。
2. tomcat將此請求作為任務加入一個隊列中,jvm中有若干工作者線程會從這個隊列中擷取任務。
3. 假設背景工作執行緒A取到了這個任務,那麼線程A通過分析請求的url,檢查已載入的web.xml配置,來判斷此請求應該交給應用的哪個servlet處理(假設應用是用servlet實現的)
4. 背景工作執行緒A調用對應的servlet的方法(service/get/post等),把請求封裝成request對象傳給servlet
5. 此時應用開始幹活(實際上幹活的還是背景工作執行緒,只不過執行的是應用中編寫的商務邏輯),解析請求參數,處理商務程序,產生response
6. 背景工作執行緒A把response回送給請求的發送端。

 

servlet規範就是規範了應用和容器的通訊。簡單的說,比如你用 SpringMVC 寫了一個 web 應用, springmvc 是遵守 servlet 規範的,所以,它可以跑在任何遵循 servlet 規範的容器上,比如,它可以跑在 tomcat 上, tomcat 就是一個 servlet 容器,當然,它也可以跑在 jetty 上。 

tomcat 是用 java 語言開發的,所以, tomcat 就是一個 java 應用,需要跑在 JVM 中,就是 java 虛擬機器。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.