web容器 web服務器 servlet/jsp容器 之間的區別和關系是什么?


web容器 web服務器 servlet/jsp容器 之間的區別和關系是什么?

這是我在網上找的一些資料:
1. Web瀏覽器除了可以在本地硬盤上打開網頁文檔外,還可以使用http網絡協議從網絡上的Web服務器(也叫www服務器)上獲取網頁文檔的內容。

2. Web瀏覽器與Web服務器分別代表着TCP網絡程序的客戶機和服務器。

3. 無論網站規模的大小,最起碼的工作就是要在用做Web服務器的計算機上安裝某種Web服務器軟件。只要在一台計算機上安裝了Web服務器軟件,從功能上講,這台計算機就可以成為Web服務器。Web服務器包括硬件即計算機和軟件即Web服務器軟件兩層意思。目前有兩種Web服務器軟件:IIS和Apache,但是它們都不直接支持Servlet和Jsp程序。要想在這些Web服務器軟件中運行Servlet和Jsp,還必須將它們與某種Servlet和Jsp容器(引擎)進行集成。

4. Tomcat是Sun公司推薦運行的Servlet和Jsp容器,它可以被集成到IIS和Apache中。Tomcat也具有Web服務器的一些基本功能,僅基本功能而已。對於一般的Web應用,我們可以直接將Tomcat作為Web服務器軟件運行。

5. 在J2EE平台中,有Servlet和Jsp容器,EJB容器等容器。

6. Servlet容器的主要任務是管理servlet的生命周期。而Web容器,它是來管理和部署 Web應用的,個人認為Web容器包括Web服務器和Servelt、Jsp容器兩層意思。當然,Tomcat可被認為是Sevlet容器、Web容器,也具有Web服務器軟件一般的功能 服務器:廣義上講有很多的概念,硬件角度上說就是一台高性能的Computer。我們通常指的服務器其實應該是裝有能夠處理具體請求事務的服務器軟件的Computer。比如最常見的www服務器、mail服務器、計費服務器、ftp服務器等等。很多時候人們常把諸如Tomcat、IIS、Weblogic 也稱之為web服務器,這對初學者很容易造成混淆,其實這些只是用於開發、集成、部署和管理Web應用、網絡應用和數據庫應用的應用服務器軟件。
7.web容器:通俗的講web容器就是能夠支持發布web程序的軟件。
8.b/s結構下,以常見的自來水供水系統為例來說,整個web系統好比完整的供水系統,用戶只需要有水龍頭(Broswer),水管相當於計算機網絡(network),自來水公司的供水系統(即Server),其中的壓力水罐就是容器(Container)了。 servlet容器的主要任務是管理servlet的生命周期。有一種服務器叫做應用服務器,它的功能比web服務器要強大的多,因為它可以部署EJB應用,可以實現容器管理的事務,一般的應用服務器有weblogic和websphere等,它們都是商業服務器,功能強大但都是收費的。web容器最典型的就是tomcat了,Tomcat是web容器也是servlet容器。web容器好比電視機,servlet容器好比VCD,沒有VCD你可以看電視,對吧,但是有了VCD沒有電視機,你從哪看起?:)沒有servlet容器,你也可以用web容器直接訪問靜態頁面,比如安裝一個apache等,但是如果要顯示jsp/servlet,你就要安裝一個servlet容器了,但是光有servlet容器是不夠的,因為它要被解析成html輸出,所以你仍需要一個web容器。但是,注意 我說   但是, 大多數servlet容器同時提供了web容器的功能,也就是說大多servelt可以獨立運行你的web應用。

 servlet容器,負責管理servlet生命周期。
    web容器,負責管理和部署web應用,其本身可能具備servlet容器組件;如果沒有,一般能將第三方servlet容器作為組件整合進web容器。
    應用服務器,其功能遠遠大於web容器,因為它可以部署EJB應用,可以實現容器管理的事務,一般的應用服務器有weblogic和websphere等,它們都是商業服務器,功能強大但都是收費的。web容器最典型的就是tomcat了,Tomcat是web容器也是servlet容器。
    由於spring的出現,應用服務器在容器管理的事務方面的價值正在褪去,因為spring的配置型事務管理特性能適用於絕大多數非分布式事務的應用場景。
WEB 容器更多的是跟基於 HTTP 的請求打交道。而 EJB 容器不是。它是更多的跟數據庫、其它服務打交道。 
  容器的行為是 將其內部的應用程序組件與外界的通信協議交互進行了隔離,從而減輕內部應用程序組件的負擔(實現方面的負擔?)。 例如,SERVLET 不用關心 HTTP 的細節,而是直接引用環境變量 session、request、response 就行、EJB 不用關心數據庫連接速度、各種事務控制,直接由容器來完成。 
  Web 服務器可以響應針對靜態頁面或圖片的請求, 進行頁面跳轉(redirect),或者把動態響應(dynamic response)的產生委托(delegate)給一些其它的程序,例如 CGI 腳本,JSP(JavaServer Pages)腳本,servlets,ASP(Active Server Pages)腳本,服務器端 JavaScript,或者一些其它的服務器端技術。 

Web 服務器僅僅提供一個可以執行服務器端程序和返回(程序所產生的)響應的環境,而不會超出職能范圍。 
Web 服務器主要是處理需要向瀏覽器發送 HTML 的請求以供瀏覽。
對於一個初學者來說,可以這樣認為,當在一台機器上配置好 Apache 服務器,可利用它響應對 HTML 頁面的訪問請求。實際上 Tomcat 部分是Apache 服務器的擴展,但它是獨立運行的,所以當你運行 tomcat 時,它實際上作為一個與 Apache 獨立的進程單獨運行的。 
 Tomcat 是提供一個支持 Servlet 和 JSP 運行的容器。Servlet 和 JSP 能根據實時需要,產生動態網頁內容。而對於 Web 服務器來說, Apache 僅僅支持靜態網頁,對於支持動態網頁就會顯得無能為力;Tomcat 則既能為動態網頁服務,同時也能為靜態網頁提供支持。盡管它沒有通常的 Web 服務器快、功能也不如 Web 服務器豐富,但是 Tomcat 逐漸為支持靜態內容不斷擴充。大多數的 Web 服務器都是用底層語言編寫如 C,利用了相應平台的特征,因此用純 Java 編寫的 Tomcat 執行速度不可能與它們相提並論。 
--——————————————————————————


免責聲明!

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



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