Ⅰ Java中Web容器
web容器可以理解為打開瀏覽器後並有一個提交請求所形成的環境.
Ⅱ Sun Java Web容器的作用和Java Web伺服器的作用是什麼
Sun Java Web容器的作用和Java Web伺服器的作用: 當用戶通過瀏覽器等Web客戶端軟體向Java Web伺服器發出一個請求之後,首先接收到這個請求的是Java Web容器,Java Web容器會將請求信息封裝到一個HttpServletRequest類型的Java對象中,並將對象傳遞給Java Web程序。對於每個請求,Java Web容器還會創建一個HttpServletResponse類型對象,該對象的作用是用來保存需要返回到瀏覽器等客戶端的內容。Java Web程序可以從HttpServletRequest提取用戶發出的請求信息,進行適當的處理之後,將處理結果放置到HttpServletResponse中,然或由Web容器解析HttpServletResponse對象內容,並將解析結果以瀏覽器能夠識別的HTML等格式返回給瀏覽器等客戶端。在這個過程中,HttpServletRequest和HttpServletResponse就如同兩條渡船,負責在Java Web容器和Java Web程序之間傳遞信息。
Ⅲ 幾種開源JavaWeb容器線程池
其中Resin從V3.0後需要購買才能用於商業目的,而其他兩種則是純開源的。可以分別從他們的網站上下載最新的二進制包和源代碼。
作為Web容器,需要承受較高的訪問量,能夠同時響應不同用戶的請求,能夠在惡劣環境下保持較高的穩定性和健壯性。在HTTP伺服器領域,ApacheHTTPD的效率是最高的,也是最為穩定的,但它只能處理靜態頁面的請求,如果需要支持動態頁面請求,則必須安裝相應的插件,比如mod_perl可以處理Perl腳本,mod_python可以處理Python腳本。
上面介紹的三中Web容器,都是使用Java編寫的HTTP伺服器,當然他們都可以嵌到Apache中使用,也可以獨立使用。分析它們處理客戶請求的方法有助於了解Java多線程和線程池的實現方法,為設計強大的多線程伺服器打好基礎。
Tomcat是使用最廣的Java Web容器,功能強大,可擴展性強。最新版本的Tomcat(5.5.17)為了提高響應速度和效率,使用了Apache Portable Runtime(APR)作為最底層,使用了APR中包含Socket、緩沖池等多種技術,性能也提高了。APR也是Apache HTTPD的最底層。可想而知,同屬於ASF(Apache Software Foundation)中的成員,互補互用的情況還是很多的,雖然使用了不同的開發語言。
Tomcat 的線程池位於tomcat-util.jar文件中,包含了兩種線程池方案。方案一:使用APR的Pool技術,使用了JNI;方案二:使用Java實現的ThreadPool。這里介紹的是第二種。如果想了解APR的Pool技術,可以查看APR的源代碼。
ThreadPool默認創建了5個線程,保存在一個200維的線程數組中,創建時就啟動了這些線程,當然在沒有請求時,它們都處理等待狀態(其實就是一個while循環,不停的等待notify)。如果有請求時,空閑線程會被喚醒執行用戶的請求。
具體的請求過程是:服務啟動時,創建一個一維線程數組(maxThread=200個),並創建空閑線程(minSpareThreads=5個)隨時等待用戶請求。當有用戶請求時,調用 threadpool.runIt(ThreadPoolRunnable)方法,將一個需要執行的實例傳給ThreadPool中。其中用戶需要執行的實例必須實現ThreadPoolRunnable介面。 ThreadPool首先查找空閑的線程,如果有則用它運行要執行ThreadPoolRunnable;如果沒有空閑線程並且沒有超過 maxThreads,就一次性創建minSpareThreads個空閑線程;如果已經超過了maxThreads了,就等待空閑線程了。總之,要找到空閑的線程,以便用它執行實例。找到後,將該線程從線程數組中移走。接著喚醒已經找到的空閑線程,用它運行執行實例(ThreadPoolRunnable)。運行完ThreadPoolRunnable後,就將該線程重新放到線程數組中,作為空閑線程供後續使用。
由此可以看出,Tomcat的線程池實現是比較簡單的,ThreadPool.java也只有840行代碼。用一個一維數組保存空閑的線程,每次以一個較小步伐(5個)創建空閑線程並放到線程池中。使用時從數組中移走空閑的線程,用完後,再歸還給線程池。
Ⅳ java 筆試簡答題什麼是web容器
WEB容器:給處於其中(JSP,SERVLET)提供一個環境,使JSP,SERVLET直接與容器中的環境變數介面交互,不必關注其它系統問題。主要有WEB伺服器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的介面嚴格遵守J2EE規范中的WEB APPLICATION 標准。我們把遵守以上標準的WEB伺服器就叫做J2EE中的WEB容器。
Ⅳ Java中Web容器
Web容器就是Web伺服器,為web請求提供響應,常用的有tomcat,resin,weblogic等,web容器沒有什麼時候載入這樣的說法,web容器只有像QQ一樣有沒有運行起來,serlvet才需要載入的,在客戶端第一次調用時載入,以後這個servlet就不用再載入了,直到不用了,destroy掉。
Ⅵ java問題:什麼是web容器列舉幾個常見的web容器
Web Container也是一個組件,是J2EE本身提供的。它封裝了一般Web組件與Web Server打交道的一些底層的細節。就是說,你自己開發的組件並不是直接調用WebServer的功能,而是通過Web Container間接與WebServer對話,這樣你就不許要知道許多關於WebServer的底層技術。
Ⅶ 什麼叫web容器以及作用
tomcat 是SERVLET的容器。
web 容器就是實現了JAVA的那些介面:javax.servlet。
而且JSP也是SERVLET的
web 容器啟動後一直運行,監聽所有提交到他所監控的那個埠的請求,並對此做出反映。
個人理解, 之前有看過人家別人寫的web容器的例子, 不過忘記了,如果你寫深入理解, 自己搜索把。
Ⅷ java裡面的web容器是指什麼
例如apache、nginx等都是此類。不過現實中很多web伺服器出於種種考慮回內置針對特定語言或架構的處理體系,例如iis內置了asp.net的處理架構,apache也可以通過擴展提供php、rails等處理架構(這些特別內置的模塊,你也可以簡單理解為web容器了)。如果web伺服器自己不處理特別請求,那麼可以通過cgi等方式轉發給後端處理,例如apache、nginx都可以通過fastcgi將請求轉發給後端埠,例如php-fpm服務,或python的什麼服務等等。 其實在java之前一直不太有web容器這種說法,到目前似乎也只有java是這么提的。這主要是因為整個java的web開發是基於javaEE的servlet技術體系,該體系規范規定了web請求的整個生命周期的方方面面。但是規范只是規定了實現的標准,或者說是介面(interface),具體實現都是各廠商自己搞定,所以這就出現了各種不同的web容器,例如tomcat、jetty、jboss等等。 又說回來,這些容器為了方便開發者,大多都提供了web伺服器的功能,不過和專業的web伺服器相比總有些缺失不足,所以一般只用來做開發用,生產環境主要還是作為後端服務。
Ⅸ java web 容器有什麼作用
就是一種所謂的中間件,用來運行java程序的。
你想,如果讓你憑空寫一個能通過web訪問的程序,是不是很難?
有了web容器,只要按照它的規范寫出功能邏輯就可以了,比如servlet,大大簡化了開發
Ⅹ java中web容器的作用
比方說:tomcat是一個web應用伺服器,它其中包含了servlet容器和jsp容器,而servlet容器就是負責管理servlet的生命周期的,如果沒有這個容器,那你的請求就無法實例化為servlet,你需要自己去寫代碼解析http請求。如果你想解析http請求,你就必須了解http協議,這是一個比較復雜的過程,現在有servlet容器,容器就會幫你去解析。
常見的web容器有tomcat,JBOSS或webloigc。