Web服務器(Apache)與Servlet容器(Tomcat)


之前一直比較迷惑Apache與Tomcat的關系,通過查詢資料,有所了解,現記錄於此。

Apache與Tomcat

兩者定位:Apache是HTTP Web服務器,Tomcat是Web容器。

有一個非常形象的比喻:Apache是一輛車,可以裝載靜態的物件(HTML靜態網頁等);但不能裝動態的水(JSP、CGI等),要裝水就需要桶(容器),當然桶也可以不放在車上而單獨存放,則該容器即為Tomcat。

兩者的主要區別:

  • Apache是世界上最流行的Web服務器(其次是微軟的IIS),可以處理瀏覽器的HTTP請求,默認端口為80;Tomcat是運行在Apache之上的應用服務器,為客戶端提供可以調用的方法。Tomcat是一個Servlet容器(可以認為Apache的擴展),可獨立運行。
  • Apache只支持HTML等靜態普通網頁,可以單向連通Tomcat(Apache可以訪問Tomcat的資源,反之不然);Tomcat是Servlet容器,可以支持JSP、PHP和CGI等,其中CGI是公共網關接口,可以用Perl編寫CGI腳本。
  • Apache側重於HTTP Server;Tomcat側重於Servlet引擎。

兩者可以整合:當客戶端需要請求靜態資源,只需要Apache服務器響應請求;當客戶端需要動態資源,如JSP,需要Tomcat服務容器(Tomcat可以將JSP解析為Servlet)。由於JSP需要JDK的數據庫驅動接口,所以一般組合是Apache+Tomcat+JDK。

兩篇介紹Apache服務網器比較好的博客:Apache與Tomcat的區別於聯系,http://www.admin10000.com/document/974.html;web服務器apache架構與原理,http://www.cnblogs.com/fnng/archive/2012/11/08/2761713.html。

Servlet容器(Tomcat)

由於Servlet沒有main方法,Servlet生命周期方法的調用受控於容器,即容器管理Servlet的生命周期,包括初始化(init)、服務調用(service)和銷毀(destroy),Tomcat就是一個Servlet容器。

當Web服務器得到一個Servlet請求時,並不是直接將請求提交給Servlet,而是轉交給部署該Servlet的Web容器(Tomcat),由容器向Servlet提供HTTP請求和響應,並由容器調用Servlet的方法,如doGet()和doPost()。更詳細的容器處理請求和響應過程,后邊再整理。

 

 


免責聲明!

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



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