Servlet沒有main()方法。它們受控於另外一個Java應用,這個Java應用稱爲容器。html
Tomcat就是這樣一個容器。若是Web服務器應用(如Apache)獲得一個指向某個servlet的請求(而不是其餘請求,如請求一個普通的靜態HTML頁面),此時服務器不是把這個請求交給servlet自己,而是交給部署該servlet的容器。要由容器向servlet提供HTTP請求和響應,並且要由容器調用servlet的方法,如doPost()或doGet()。web
個人理解:Tomcat就是這樣的一個Web容器。tomcat
線程結束,容器把響應對象轉換爲一個HTTP響應,把它發回給客戶,而後刪除請求和響應對象。安全
不想貼代碼,貼圖吧。si mi ma sen服務器
咱們寫的serlvet都是繼承於HttpServlet類,通常寫的時候都要覆蓋doGet()和doPost()方法。若是想看HttpServlet的源碼,能夠到官網上下載:官網首頁->左邊Download tomcat8->看下面的圖多線程
書上說了一大堆,看不懂。but,書上總結了:架構
部署一個servlet的圖片:上一節有講到那些xml標籤,不會的能夠翻一下筆記。spa
大佬的傳送門:JSP開發的MVC架構線程
採用MVC,不只要求業務邏輯與表示分離……實際上,業務邏輯甚至根本不知道有表示存在。3d
Servlet&JSP世界中的MVC:
J2EE應用服務器包括一個Web容器和一個EJB容器。
Tomcat是一個Web容器,而不是一個完整的J2EE應用服務器。
J2EE服務器包括:Servlet規範、JSP規範、EJB規範。
Q:那Tomcat是一個獨立的Web容器囉……這是否是說也存在獨立的EJB容器呢?
A:EJB容器都做爲完整J2EE服務器的一部分,但獨立的web容器依然存在(Tomcat)。獨立的Web容器一般配置爲一個與HTTP Web服務器(Apache)協做,不過Tomcat容器自己就能做爲一個基本的HTTP服務器。可是在HTTP服務器功能方面,Tomcat沒有Apache那麼健壯,因此最多見的非EJB Web應用一般會結合使用Apache和Tomcat,Apache做爲HTTP Web服務器,Tomcat做爲Web容器。
因此在看書的時候遇到Web服務器(HTTP服務器)就不用管了,由於Tomcat裏面有一個小的HTTP服務器。我是這樣理解的。