【Tomcat】JVM,Tomcat,Servlet,Tomcat中的應用。徹底弄懂這些概念之間的聯系


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 虛擬機。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM