『壹』 常用的java web 容器有哪幾種
tomcat , jboss, weblogic, websphere
一般項目tomcat就可以了
『貳』 各種容器和伺服器之間的區別和聯系
平時我們經常看到各種容器名稱:Servlet容器、WEB容器、Java WEB容器、Java EE容器等,還有各種伺服器名稱:應用伺服器、WEB伺服器、WEB應用伺服器、JavaWEB應用伺服器、Java EE伺服器等,這么多相似名稱,難以弄明白它們之間的區別與聯系。
下面我們嘗試從它們的定義中,區分它們,找出他們之間的聯系,最後通過Apache、nginx、tomcat等舉例說明容器以及伺服器的聯系。
如上圖,我們先來看下容器與伺服器的聯系:容器是位於應用程序/組件和伺服器平台之間的介面集合,使得應用程序/組件可以方便部署到伺服器上運行。
容器通常理解就是裝東西的,我們這里說技術上的容器就是 可以部署應用程序,並在上面運行的環境 。
一般來說,它處理屏蔽了伺服器平台的復雜性,使得應用程序在它的基礎上可以方便快捷的部署;而對於應用程序來說,它就是位於 應用程序和平台之間的介面集合 。
容器管理組件的生命周期,向應用程序組件分派請求,並提供與上下文數據(如關於當前請求的信息)的介面。
Servlet:屬於Java EE重要技術規范,構建了"接收請求--調用servlet程序處理--返回響應"基本模型。
Servlet程序:Java提供了開發Servlet程序的API,該API可以說Servlet容器的一部分,它對接應用程序與Servlet容器;
Servlet容器:就是實現了Servlet技術規范的部署環境,它可以部署運行Servlet程序。
WEB容器:可以部署多個WEB應用程序的環境。web容器給處於其中的應用程序組件(jsp,servlet)提供一個環境,使JSP,Servlet直接跟容器中的環境變數交互,不必關注其他系統問題。
Java WEB容器:實現了 Java EE規定的WEB應用技術規范 的部署環境。
Java EE WEB應用技術規范:Servlet、JSP(JavaServer Pages)、Java WebSocket等。
所以,完整的Java WEB容器包含Servlet容器。
伺服器是提供計算服務的設備。由於伺服器需要響應服務請求,並進行處理,因此一般來說伺服器應具備承擔服務並且保障服務的能力。
簡單來說,伺服器是 提供某些服務的設備 。
應用程序:是指為針對使用者的某種應用目的所編寫的軟體。
應用伺服器:就是運行應用程序,提供應用程序所實現服務的設備。
通常來說, 伺服器端的應用程序實現各種業務邏輯,應用伺服器通過各種協議把這些業務邏輯曝露給客戶端的程序 。它提供了訪問商業邏輯的途徑,以供客戶端應用程序使用。應用伺服器使用此業務邏輯就像調用對象的一個方法一樣。
WEB:現廣泛譯作網路、互聯網等技術領域。表現為三種形式,即超文本(hypertext)、超媒體(hypermedia)、超文本傳輸協議(HTTP)等。
WEB伺服器:或者叫 HTTP Server ,主要用於操作Http請求,包括接受客戶端的請求以及響應。它可以處理請求,也可以將請求轉發至其他伺服器。
簡單來說,WEB伺服器是提供網上信息瀏覽等WEB服務的設備。 Apache、Nginx、IIS是目前最主流的三個Web伺服器。可以用它們來構建WEB應用伺服器,通常它們發現一個請求是動態請求,就通過CGI、ISAPI、特殊管道等協議介面調用後面的應用伺服器來協同處理請求。如Nginx通過fastCGI模塊來調用ZendEngine執行PHP應用來處理PHP請求。
上面我們 把應用伺服器和WEB伺服器 嚴格區分:應用伺服器通過應用程序介面(通常是網路請求API)把業務邏輯暴露給客戶端應用程序。而WEB伺服器通過HTTP提供靜態內容給瀏覽器等客戶端。
如果不嚴格區分,應用伺服器包含WEB伺服器,因為WEB伺服器是WEB服務應用程序實現的。
WEB應用伺服器:結合應用伺服器和WEB伺服器,可以說,它是帶應用伺服器的Web伺服器,接收HTTP請求後,既能返回頁面等靜態內容,又能處理業務邏輯返回數據。
Tomcat、Jetty、WebLogic、Websphere、JBoss都是Java(EE) WEB應用伺服器。拿最常用的Tomcat來說,Tomcat是Java Servlet,JavaServerPages,Java Expression Language和JavaWebSocket(Java EE)技術的開源實現。
Java EE伺服器是實現Java EE技術規范,並提供標准Java EE服務的應用程序伺服器。
Java EE伺服器有時稱為應用伺服器,因為它們允許您向客戶端提供應用數據,就像Web伺服器向Web瀏覽器提供Web頁面一樣。
一個典型的JavaEE系統可以由兩部分構成首先是Web Server 用於處理靜態資源,然後是JavaEE Application Server 用於處理業務的動態資源。而這兩部分可以是單獨的伺服器例如Nginx+WebSphere也可以在一個伺服器上完成比如Tomcat(Tomcat即可以處理靜態資源又可以處理動態的Servlet)。
從概念上講:Web伺服器是提供WWW服務的程序;Web容器是提供給開發者的框架;Web應用程序伺服器內容豐富得多,既可用各廠商通常遵循一定的工業標准並自定義擴展功能而成,也可以利用開源組件輕量級拼裝打造。
『叄』 java問題:什麼是web容器列舉幾個常見的web容器
Web容器給處於其中的應用程序組件(JSP,SERVLET)提供一個環境,使JSP,SERVLET直接跟容器中的環境變數交互,不必關注其它系統問題。主要有WEB伺服器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的介面嚴格遵守J2EE規范中的WEB APPLICATION 標准。我們把遵守以上標準的WEB伺服器就叫做J2EE中的WEB容器。
『肆』 Java web 為什麼要運行在容器中 沒有容器不行嗎
可以。這就是java語言寫的伺服器的底層代碼的。比如tomcat
//9999就是埠號
ServerSocket ss=new ServerSocket(9999);
Socket s=ss.accept();
System.out.println("1000正在連接");
OutputStream os=s.getOutputStream();
BufferedReader br=new BufferedReader(new FileReader("F:\\Visual Studio\\readme.htm"));
String buf="";
while((buf=br.readLine())!=null){
os.write(buf.getBytes());
}
br.close();
os.close();
s.close();
其實也就是通過輸出流的形式來實現在網頁上展現效果。這還只是一部分代碼。要是還要導包。你就必須放到web-inf的lib目錄下等很多瑣碎的事。有了容器就會很方便。只要通過eclipse工具。web伺服器就會自動幫你管理多個資源。只要你將相應的文件放在相應的位置。
『伍』 web伺服器的缺陷是什麼java是怎麼樣解決這個缺陷的
Web伺服器的缺陷是什麼?Java是怎麼樣解決這個缺陷的?因為web伺服器是被設計用來向客戶端提供HTTP服務的,它只能向客戶端提供靜態的網頁內容,不能創建動態伺服器端內容。java解決方案servlet和web容器對請求和響應的處理如下:1.客戶端向web伺服器發起一個HTTP請求;2.HTTP請求被WEB伺服器接受,如果請求是靜態頁面,則由web伺服器負責處理,如果請求是javaweb主件,則交給Web容器。Web容器可以在主機的同一個進程、不同的行程或其他的web伺服器主機的進程中啟動。3.web容器根據Servlet的配置文件確定調用具體的Servlet類,並把request對象、response對象傳給它。4.Servlet通過request對象知道客戶端的使用者是誰,客戶的請求信息是什麼和其他的一些信息。Servlet處理完請求後吧要返回的信息放入response對象返回到客戶端。5.一旦Servlet完成請求的處理,web容器就會刷新response。並把控制權返回給web伺服器。
『陸』 什麼是JavaWeb
Java Web 其實就是一個技術的總和,把Web看成一個容器而已主要使用JavaEE技術來實現.在加上各種中間件。整個javaWeb階段的內容通過實際的案例貫穿學習, 所涉及到的技術知識點會在案例中根據不同的需求引入。首先了解javaWEB的整個技術體系,掌握常用的技術知識點。
『柒』 java 怎麼獲取web容器的ip和埠號
request.getRemoteAddr(); IP獲取
request.getRemotePort(): 埠號
『捌』 Java中Web容器
Server只是一種技術。它本身不能單獨運行。需要依賴Servlet容器。說通俗點,你要開發Servlet。需要導入Servlet的jar包,然後寫代碼。但是你寫完代碼之後不能運行。為什麼因為Servlet沒有main函數,不能運行。那怎麼運行Servlet的代碼?依賴Servlet容器啊。Servlet容器裡面就有main函數的入口。所以你要把Servlet代碼放入到Servlet容器中才能運行。那Servlet容器有哪些?如何放進容器中?
常見的Servlet容器有:tomcat , jetty。
以tomcat為例。我們如何將Servlet代碼放入到tomcat中?很簡單。如果你用window系統,你下載一個window版的tomcat的zip壓縮包。解壓後,找到webapps目錄。新建一個目錄。把你的Servlet代碼的class文件代碼。web.xml,lib包等原封不動拷貝到這個目錄中。然後在tomcat解壓目錄的bin目錄下,找到startup.bat。雙擊就能啟動tomcat。tomcat有main函數。所以tomcat已啟動,web容器就啟動。當你第一次請求某個Servlet時,Servlet就會被創建,並保存在容器中。